372 字
2 分钟
面试鸭-工厂模式和抽象工厂模式有什么区别?
工厂模式和抽象工厂模式有什么区别?
首先 工厂模式是一种计算机的设计模式,它用于把创建对象抽离出来放到另外的一个地方里 而工厂模式和抽象工厂模式是实现的方式有点不同。 工厂模式主要是关注单一类型的对象,一个工厂只生产一种产品。 抽象工厂模式是关注一族相关对象,一个工厂生成一整套配套的产品。
抽象工厂模式由于一个对象中包含多个产品,如果要新增一个产品链那也必须要有多个对应得上的产品。而正因为这个,如果想新增一种产品类型,那么就得把所有存在的工厂都加上这种类型,这变得非常困难,因此它只适合那种产品类型相对固定、然后产品族可能扩展的情况。 而工厂模式想新增一个产品类型只需要新增一个工厂子类即可,非常的容易。 并且 工厂模式的代码复杂度比较低,而抽象工厂模式代码复杂度高。 所以它们有各自的适用场景:工厂模式适合产品类型单一的情况,抽象工厂模式适合产品之间有约束关系 比如我要实现mac风格和windows风格的两套组件。
问题
面试鸭-工厂模式和抽象工厂模式有什么区别?
http://www.shineacz.top/posts/面试鸭-工厂模式和抽象工厂模式有什么区别/