Skip to content

Instantly share code, notes, and snippets.

@malalanayake
Created April 12, 2016 20:20
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 malalanayake/e2647e2c086839f1f7a348e592cbf55c to your computer and use it in GitHub Desktop.
Save malalanayake/e2647e2c086839f1f7a348e592cbf55c to your computer and use it in GitHub Desktop.
Dependency Inversion principal - Good sample code
package sample.dependency.Inversion.good;
/**
*
* Distibution under GNU GENERAL PUBLIC LICENSE Version 2, June 1991
*
* @author dmalalan
* @created Apr 12, 2016 2:48:43 PM
*
* @blog https://malalanayake.wordpress.com/
*/
public class ApplicationProgramNew implements Runner {
public void run() {
System.out.println("[RUN:Application]");
}
}
package sample.dependency.Inversion.good;
/**
*
* Distibution under GNU GENERAL PUBLIC LICENSE Version 2, June 1991
*
* @author dmalalan
* @created Apr 12, 2016 2:58:58 PM
*
* @blog https://malalanayake.wordpress.com/
*/
public class Main {
public static void main(String[] args) {
ApplicationProgramNew app = new ApplicationProgramNew();
ServiceProgramNew service = new ServiceProgramNew();
OperatingSystemNew os = new OperatingSystemNew();
os.start(app);
os.start(service);
}
}
package sample.dependency.Inversion.good;
import java.util.List;
/**
*
* Distibution under GNU GENERAL PUBLIC LICENSE Version 2, June 1991
*
* @author dmalalan
* @created Apr 12, 2016 2:48:03 PM
*
* @blog https://malalanayake.wordpress.com/
*/
public class OperatingSystemNew {
private List<Runner> apps;
public void start(Runner runner) {
apps.add(runner);
runner.run();
}
}
package sample.dependency.Inversion.good;
/**
*
* Distibution under GNU GENERAL PUBLIC LICENSE Version 2, June 1991
*
* @author dmalalan
* @created Apr 12, 2016 2:50:38 PM
*
* @blog https://malalanayake.wordpress.com/
*/
public interface Runner {
public void run();
}
package sample.dependency.Inversion.good;
/**
*
* Distibution under GNU GENERAL PUBLIC LICENSE Version 2, June 1991
*
* @author dmalalan
* @created Apr 12, 2016 2:49:09 PM
*
* @blog https://malalanayake.wordpress.com/
*/
public class ServiceProgramNew implements Runner {
public void run() {
System.out.println("[RUN:Service]");
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment