Skip to content

Instantly share code, notes, and snippets.

@dfucci
Created April 26, 2017 10:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dfucci/16c1eb95de55142b36a89a3592f4b69a to your computer and use it in GitHub Desktop.
Save dfucci/16c1eb95de55142b36a89a3592f4b69a to your computer and use it in GitHub Desktop.
Dependency inversion principle
// Bad example
class Worker {
public void work() {// ....working}
}
class Manager {
Worker worker;
public void setWorker(Worker w) {worker = w;}
public void manage() {worker.work();}
}
class SuperWorker {
public void work() {//.... working much more}
}
// Good example
interface IWorker {
public void work();
}
class Worker implements IWorker{
public void work() {// ....working}
}
class SuperWorker implements IWorker{
public void work() {//.... working much more}
}
class Manager {
IWorker worker;
public void setWorker(IWorker w) {worker = w;}
public void manage() {worker.work();}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment