interface接口解耦合
2017-02-16 14:01
344 查看
耦合的概念
耦合是一个宽泛的概念。两个程序模块有关联就叫做耦合
比如某些模块必然要关联起来才能工作,这是由业务逻辑决定的,不能否认。所以解耦并不是字面意义上的把关联拆掉,而是把模块之间的关联放松到必要的程度。
模块只对外暴露最小限度的接口,形成最低的依赖关系。
只要对外接口不便,板块内部的修改,就是不得影响期的的模块。
删除一个模块,应当值影响有依赖关系的其他模块,而不应该影响其他无关部分
耦合是一个宽泛的概念。两个程序模块有关联就叫做耦合
比如某些模块必然要关联起来才能工作,这是由业务逻辑决定的,不能否认。所以解耦并不是字面意义上的把关联拆掉,而是把模块之间的关联放松到必要的程度。
模块只对外暴露最小限度的接口,形成最低的依赖关系。
只要对外接口不便,板块内部的修改,就是不得影响期的的模块。
删除一个模块,应当值影响有依赖关系的其他模块,而不应该影响其他无关部分
public static void main(String[] args) { // Mouse mouse = new Mmouse(); // Mouse mouse = new Omouse(); // Display display = new LED(); Mouse mouse = new TouchScreen(); Display display = (Display) mouse; Computer c = new Computer(mouse, display); c.startup(); } } interface Mouse { void input(); } interface Display { void output(); } class Mmouse implements Mouse { public void input() { System.out.println("mmouse input"); } } class Omouse implements Mouse { public void input() { System.out.println("omouse input"); } } class CRT implements Display { public void output() { System.out.println("CRT output"); } } class LED implements Display { public void output() { System.out.println("LED output"); } } class TouchScreen implements Mouse, Display { public void input() { System.out.println("touchscreen input"); } public void output() { System.out.println("touchscreen output"); } } class Computer { private Mouse mouse; private Display display; public Computer(Mouse mouse, Display display) { this.mouse = mouse; this.display = display; } public void startup() { this.mouse.input(); this.display.output(); }