对工厂方法理解

1.工厂方法概念

工厂方法模式,简单来说是来为了解决简单工厂模式所出现的一些缺点而进行的改进。提供一个抽象工厂方法模式,这样就可以避免新增功能的时候修改源代码,只要新建一个类来继承了工厂方法模式即可。

2.工厂方法模式结构

Product:它是定义产品的接口,是工厂方法模式所创建的产品的父类。

ConcreteProduct:具体产品.

Factory:抽象工厂类中声明了工厂方法。

ConcreteFactory:具体的工厂方法,继承了抽象工厂类,用来生产具体的对象。

3.工厂方法优缺点

1.优点:

①可以避免创建者和具体产品之间的紧密耦合。

②单一职责原则。 你可以将产品创建代码放在程序的单一位置, 从而使得代码更容易维护。

③开闭原则。 无需更改现有客户端代码, 你就可以在程序中引入新的产品类型。

2.缺点:

应用工厂方法模式需要引入许多新的子类, 代码可能会因此变得更复杂。 最好的情况是将该模式引入创建者类的现有层次结构中。

4.工厂方法模式的实现方式

①让所有产品都遵循同一接口。 该接口必须声明对所有产品都有意义的方法。

②在创建类中添加一个空的工厂方法。 该方法的返回类型必须遵循通用的产品接口。

③在创建者代码中找到对于产品构造函数的所有引用。 将它们依次替换为对于工厂方法的调用, 同时将创建产品的代码移入工厂方法。 你可能需要在工厂方法中添加临时参数来控制返回的产品类型。

④为工厂方法中的每种产品编写一个创建者子类, 然后在子类中重写工厂方法, 并将基本方法中的相关创建代码移动到工厂方法中。

⑤如果应用中的产品类型太多, 那么为每个产品创建子类并无太大必要, 这时你也可以在子类中复用基类中的控制参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值