笔记:SpringBoot 简单工厂模式

简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。创建型模式。 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。
java.util.Calendar.createCalendar

https://www.jianshu.com/p/e55fbddc071c

  1. 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响;
  2. 违背“开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。
  3. 简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。

作者:Carson_Ho
链接:https://www.jianshu.com/p/e55fbddc071c
来源:
著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

https://www.runoob.com/design-pattern/abstract-factory-pattern.html

//鼠标产品
public interface Mouse {
    void printBrand();
}
//戴尔鼠标
public class DellMouse implements Mouse {
    @Override
    public void printBrand() {
        System.out.println("DELL MOUSE");
    }
}
//惠普鼠标
public class HpMouse implements Mouse {
    @Override
    public void printBrand() {
        System.out.println("HP MOUSE");
    }
}

//鼠标工厂
public class MouseFactory {
    public static Mouse getMouse(String brand) {
        switch (brand) {
            case "HP":
                return new HpMouse();
            case "DELL":
                return new DellMouse();
            default:
                throw new RuntimeException("NO SUCH MOUSE");
        }
    }
}

//Application.java
@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class);
        MouseFactory.getMouse("DELL").printBrand();
    }
}

你可能感兴趣的:(笔记:SpringBoot 简单工厂模式)