Abstract Factory模式相关概念

意图
需要为特定的客户或情况,提供对象组

问题
需要实例化一组相关的对象

解决方案
协调对象组的创建,提供一种方式,将如何执行对象实例化的规则从使用这些对象的客户对象提取出来。

参与者与协作者
为如何创建对象的每个成员定义接口。一般每个组都独立的concreteFactory进行创建

效果
将使用那些对象的规则和如何使用这些对象的逻辑分离开来

实现
定义一个抽象类来指定创建哪些对象。然后为每个组实现一个具体类。可以用表或文件完成同样的任务。


三个关键步骤:

  1. 找到变化并封装之
  2. 优先使用对象聚集,而不是继承。
  3. 针对接口而不是实现设计

根据职责分解方式

  • 谁在使用我们的特定对象
  • 谁来决定使用那些特定对象

结论:当问题域中存在不同组的对象,而且每组都用不同情况时,使用Abstract Factory

一般遵循三步曲实现。

  • 找出实例化规则,定义一个带接口的抽象类,其中的接口为每种需要实现化的对象提供一个方法。
  • 从这个类为每个组实现具体类
  • 客户对象使用具体工厂对象创建所需要的服务对象

猜你喜欢

转载自blog.csdn.net/weixin_43800786/article/details/85240152