知识卡片

简单工厂模式用静态方法换取简洁性

普通读书笔记卡 · 1853.a.3

内容

简单工厂模式(静态工厂模式)是[[工厂方法模式的定义与命令简化原理]]的弱化版:一个模块只 需一个工厂、没有多态扩展必要时,去掉抽象工厂类,把创建方法声明为static,调用更直接。 代价是丧失继承扩展能力,未来需要多种实现就必须改写这个静态方法,不符合开闭原则。发散: “该不该保留抽象工厂类”是需要根据扩展需求判断的设计决策,过度设计同样是代价。

参考来源

- 位置:《设计模式之禅(第2版)》第8章《工厂方法模式》(源文件:_epub-src/text/part0036.html) - 结论依据:原文说明去掉AbstractHumanFactory抽象类、把createHuman方法改为static后调用更简单,并指出"该模式是工厂方法模式的弱化……其缺点是工厂类的扩展比较困难,不符合开闭原则,但它仍然是一个非常实用的设计模式"。 - 原始内容:一个模块仅需要一个工厂类,没有必要把它产生出来,使用静态的方法就可以了……该模式是工厂方法模式的弱化,因为简单,所以称为简单工厂模式(Simple Factory Pattern),也叫做静态工厂模式……其缺点是工厂类的扩展比较困难,不符合开闭原则。