實現了創建者和調用者的分離
面向對象設計的基本原則:
OCP-開閉原則 : 一個軟件實體應該對擴展開放,對修改關閉。
DIP-依賴倒轉原則 : 針對接口編程
LoD-迪米特法則 : 避免類與其它類發生關係(避免和陌生人通信)
public interface Car {
void run();
}
public class Aodi implements Car {
@Override
public void run() {
System.out.println("Aodi在跑!");
}
}
public class Byd implements Car {
@Override
public void run() {
System.out.println("BYD在跑!");
}
}
1.簡單工廠模式:
也叫靜態工廠模式,通過接受參數不同來返回不同得對象實例。
對於增加新的產品,必須修改代碼,不然無法擴展。
public class CarFactory {
public static Car createCar(String type){
if("奧迪".equals(type)){
return new Aodi();
}else if("比亞迪".equals(type)){
return new Byd();
}else{
return null;
}
}
}
public class CarFactory02 {
public static Car createAodi(){
return new Aodi();
}
public static Car createByd(){
return new Byd();
}
}
2.工廠方法模式
爲了避免簡單工廠的缺點,不滿足OCP模式
通過定義一個通用的工廠接口,創建新的實現類來更新產品。
public interface CarFactory {
Car cerateCar();
}
public class AodiFactory implements CarFactory {
@Override
public Car cerateCar() {
return new Aodi();
}
}
public class BYDFactory implements CarFactory {
@Override
public Car cerateCar() {
return new Byd();
}
}
3.抽象工廠模式
用來生產不同產品族的全部產品。
不可以增加單個產品
https://blog.csdn.net/weixin_40423032/article/details/96479482