平时做项目跟使用第三方类库的时候经常会用到工厂模式。什么是工厂模式,简单来说就是他的字面意思。给外部批量提供相同或者不同的产品,而外部不需要关心工厂是如何创建一个复杂产品的过程。
所以工厂模式可以降低模块间的耦合,同时可以提高扩展性(当有新的产品出现时,只需要扩展工厂就行了,上层模块不敏感)。
工厂模式根据抽象的角度和层级的不同可以分为两种模式:
1。
工厂方法模式 (Factory Method)
2。抽象工厂模式 (Abstract Factory)
二。实现
1。
工厂方法模式
工厂方法模式的特点是:
一个抽象产品类(或接口),派生(或实现)多个真实产品类
一个抽象工厂类(或接口),派生(或实现)多个真实工厂类
一般来说标准的工厂方法模式需要一个工厂只生产一种产品,那么当产品种类特别多的时候工厂的数量就特别多,所以通常会使用一些工厂方法模式的变种。