工厂模式的的作用:实现创建者 调用者分离
1、简单工厂模式(静态工厂模式 方法都是静态的)
提供一个类--》工厂 (负责返回一个可有工厂生产出的对象)
缺点:增加一个产品 不修改类是做不到 不满足开闭原则 增加新的 必须扩展已有代码
eg:
//一个工厂类
package com.ljb.simplefactory;
/**
* Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
*
* @author Sw_Ljb
* @version 1.0
* @ClassName CarFactory
* @Date 2022/4/20下午4:25
*/
public class CarFactory{
//方式一
public static Car getCar(String msg){
if (msg.equals("五菱")){
return new Wuling();
}else if (msg.equals("特斯拉")){
return new Tesla();
}else {
return null;
}
}
//方式二
public static Car getWu(){
return new Wuling();
}
public static Car getT(){
return new Tesla();
}
public static Car getD(){
return new Dazhong();
}
}
//一个工厂生产的产品
package com.ljb.simplefactory;
/**
* Copyright (C), 2022-2030, Chongqing Mac info. Co., Ltd.
*
* @author Sw_Ljb
* @version 1.0
* @ClassName Dazhong
* @Date 2022/4/20下午4:24
*/
public class Dazhong implements Car{
@Override
public void name() {
System.out.println("大众");
}
}
提供一个接口去让产品去事项
2、工厂方法模式
目的:解决简单工厂模式不可扩展 ;实例化对象 不用new 用工厂方法代替
就是说将工厂也抽象 然后 每一家要生产该产品的工厂 都来实现这个抽象工厂 并重写工厂中的方法
然后在生产各自的产品。