文章目录
设计模式 - 简单工厂模式
1、意图
在创建一个对象时不向客户暴露内部细节,并提供一个创建对象的通用接口。
这样做能把客户类和具体子类的实现解耦,客户类不再需要知道有哪些子类以及应当实例化哪个子类。客户类往往有多个,如果不使用简单工厂,那么所有的客户类都要知道所有子类的细节。而且一旦子类发生改变,例如增加子类,那么所有的客户类都要进行修改。
2、实例
1、创建颜色接口 - 定义生产的产品是什么
public interface Color {
void execute();
}
2、创建颜色枚举 - 定义生产哪些类型的产品
public enum ColorEnum {
RED,BLUE,YELLOW
}
3、根据颜色枚举创建产品 - 根据产品清单生产产品
@Slf4j
public class Blue implements Color {
@Override
public void execute() {
log.info("Blue");
}
}
@Slf4j
public class Red implements Color