4依賴倒轉原則DIP

1、什麼是倒轉?測試

傳統的過程式設計傾向於使高層次的模塊依賴於低層次的模塊,抽象層依賴 於具體的層次。this

 

2、什麼是依賴倒轉原則spa

  依賴倒轉(Dependence Inversion Principle ):設計

    1.抽象不該該依賴於細節,細節應該依賴於抽 象。code

    2.高層模塊不依賴底層模塊,二者都依賴抽象。blog

 

3、組裝電腦ip

 

4、怎樣作到依賴倒轉內存

  1.工廠方法模式   ci

  2.模板方法模式get

  3.迭代子模式

 

 主板  抽象類

1 /*
2  * 主板抽象類
3  */
4 public abstract class MainBoard {
5     public abstract void doSomething();
6 }

內存  抽象類

1 /*
2  * 內存的抽象類
3  */
4 public abstract class Memory {
5     public abstract void doSomething();
6 }

硬盤  抽象類

1 /*
2  * 硬盤的抽象類
3  */
4 public abstract class HardDisk {
5     public abstract void doSomething();
6 }

華碩主板

1 /*
2  * 華碩主板
3  */
4 public class HuaSuoMainBoard extends MainBoard{
5 
6     public void doSomething() {
7         System.out.println("this is huasuoMainBoard");
8     }
9 }

微星主板

1 //微星主板
2 public class WeiXingMainBoard extends MainBoard {
3 
4     public void doSomething() {
5         System.out.println("this is weixingMainBoard");
6     }
7 }

 

金士頓內存

1 //金士頓內存
2 public class JinShiDunMemory extends Memory {
3 
4     public void doSomething() {
5         System.out.println("this is jinshidunMemory");
6     }
7 }

金邦硬盤

1 //金邦硬盤
2 public class JinBangMemory extends Memory {
3 
4     public void doSomething() {
5         System.out.println("this is jinbangMemory");
6     }
7 }

西數硬盤

1 //西數硬盤
2 public class XiShuHardDisk extends HardDisk {
3 
4     public void doSomething() {
5         System.out.println("this is xishuHardDisk");
6     }
7 }

電腦

 1 /*
 2  * 電腦
 3  */
 4 public class Computer {
 5     private MainBoard mainBoard;
 6     private Memory memory;
 7     private HardDisk harddisk;
 8 
 9     public MainBoard getMainBoard() {
10         return mainBoard;
11     }
12 
13     public void setMainBoard(MainBoard mainBoard) {
14         this.mainBoard = mainBoard;
15     }
16 
17     public Memory getMemory() {
18         return memory;
19     }
20 
21     public void setMemory(Memory memory) {
22         this.memory = memory;
23     }
24 
25     public HardDisk getHarddisk() {
26         return harddisk;
27     }
28 
29     public void setHarddisk(HardDisk harddisk) {
30         this.harddisk = harddisk;
31     }
32 
33     public void display() {
34         mainBoard.doSomething();
35         memory.doSomething();
36         harddisk.doSomething();
37     }
38 }

測試

 1 public class MainClass {
 2     public static void main(String[] args) {
 3         Computer computer = new Computer();
 4         computer.setMainBoard(new HuaSuoMainBoard());
 5         computer.setMemory(new JinShiDunMemory());
 6         computer.setHarddisk(new XiJieHardDisk());
 7         
 8         computer.display();
 9         
10         System.out.println("-------------");
11         
12         computer.setMainBoard(new WeiXingMainBoard());
13         computer.display();
14     }
15 }
相關文章
相關標籤/搜索