设计模式-02-工厂模式

80 阅读1分钟

工厂模式详细分为: 创建者和调用者分离; 1. 简单工厂模式; 2. 工厂方法模式; 3. 抽象工厂模式;

   开闭原则:  扩展开放,修改关闭;
依赖倒转原则:  真对接口编程,不针对实现编程;
     迪米特:   不和陌生人讲话;
     

使用场景

  1. JDK中的calender的getInstance()方法

  2. JDBC中的Connection对象的获取

  3. Spring中IOC容器创建管理bean对象

  4. 反射中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();
    


}