工厂模式详细分为: 创建者和调用者分离; 1. 简单工厂模式; 2. 工厂方法模式; 3. 抽象工厂模式;
开闭原则: 扩展开放,修改关闭;
依赖倒转原则: 真对接口编程,不针对实现编程;
迪米特: 不和陌生人讲话;
使用场景
-
JDK中的calender的getInstance()方法
-
JDBC中的Connection对象的获取
-
Spring中IOC容器创建管理bean对象
-
反射中Class对象的newInstance方法
简单工厂模式
public class Factory{
public static Car getCar(String car){
if(car.equals("奔驰")){
return new Benchi();
}else if(car.equals("奥迪")){
return new Aodi();
}else{
return null;
}
}
}
缺点::增加新的产品,不修改代码,做不到!!!!!!
--》我们进而想到开闭原则:扩展开放,想扩展,要想到这个!
工厂方法模式
为了满足开闭原则,在增加新的类的时候不对代码进行修改!
//实现car接口
public interface Car{
}
//car工厂接口
public interface CarFactory{
Car getCar();
}
//创建实体
public class Benci implement Car{
System.out.println("奔驰");
}
public class Baoma implement Car{
System.out.println("宝马");
}
public class BaomaFactory implements CarFactory{
@override
public Car getCat(){
return new Baoma();
}
}
public class BenciFactory implements CarFactory{
@override
public Car getCat(){
return new Benci();
}
}
//向上转型
psvm{
Car car=new BenciFactory().getCar();
Car car2=new BaomaFactory().getCar();
}