简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。创建型模式。 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。
java.util.Calendar.createCalendar
https://www.jianshu.com/p/e55fbddc071c
- 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响;
- 违背“开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。
- 简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。
作者: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();
}
}
网友评论