工厂是制造产品的,那这个工厂具体制造什么样的产品则根据各个产业领域不同而不同。但是工厂对外的只是产品,具体产品如何生产对用户来说是透明的。
下面列出一副图来描述工厂方法的结构:
上述图中Product是接口部分.
ConcreteProduct是具体的产品接口实现。
FactoryMethod是父类工厂。
ConceteCreateor来返回ConcreteProduct实例。
下图是工厂方法简单原型图:
下面我列举实际项目中的工厂方法使用例子:
对于移动平台的项目,尤其针对android会有很多渠道,比如91比如360等等,然后这些渠道都有自己的特点,因此在我们项目当中需要为这些不同的平台分别定制,但是产品的核心功能是不变的,由此需求,工厂方法设计再合适不过了。
下面是例子工程结构图: