工廠模式:
實現了創建者和調用者的分離
- 詳細分類
簡單工廠模式
工廠方法模式
抽象工廠模式
面向對象設計的基本原則:
- (1).OCP (開閉原則Open-closed Principle):一個軟件的實體應當對擴展開放,對修改關閉。
- (2)DIP (依賴倒轉原則,Dependence Inversion Principle):要針對接口編程,不要針對實現編程
- (3)LOD (迪米特法則 ,Law of Demeter):只與你直接的朋友通信,而避免和陌生人通信
工廠模式核心本質:
實例化對象,用工廠方法代替new操作
將選擇實現類,創建對象統一管理和控制,從而將調用者跟我們實現類解耦。
簡單工廠模式核心要點:
簡單工廠模式也叫靜態工廠模式,工廠類一般使用靜態方法,通過接受參數的不同來返回不同的對象實例。
對於新增加的產品無能爲力,不修改代碼,無法擴展
簡單工廠模式實現案例:
//簡單工廠模式
public interface Car {
void run();
}
public class Byd implements Car {
@Override
public void run() {
System.out.println("比亞迪再跑!");
}
}
public class Audi implements Car {
@Override
public void run() {
System.out.println("奧迪再跑!");
}
}
/**
* 簡單工廠類
*/
public class CarFactory2 {
public static Car createAudi(){
return new Audi();
}
public static Car createByd(){
return new Byd();
}
}
沒有工廠模式下調用
/**
* 測試在沒有工廠模式的情況下
*/
public class Client01 { //調用者
public static void main(String[] args) {
Car c1 = new Audi();
Car c2 = new Byd();
c1.run();
c2.run();
}
}
簡單工廠模式下調用
/**
* 簡單工廠情況下
*/
public class Client02 { //調用者
public static void main(String[] args) {
Car c1 =CarFactory.createCar("奧迪");
Car c2 = CarFactory.createCar("比亞迪");
c1.run();
c2.run();
}
}