设计模式入门——工厂模式(抽象工厂)

背景:

在工厂方法中,PizzaStore类依赖于所有的具体实现(所有继承它的类,需要依靠它完成实例化),故每增加一个Pizza种类,就等于让PizzaStore多了一个依赖。如果具体类改变了,就必须修改抽象类(PizzaStore),所以我们需要去减少对于具体类的依赖。

设计:

依赖倒置原则:要依赖抽象,不要依赖具体类。

实现一:PizzaStore类的强依赖主要因为它依赖每个Pizza类型,它在自己的orderPizza()方法中实例化这些具体类型。我们只需在orderPizza()中将实例化对象的代码独立出来即可。故创建一个Pizza抽象类,PizzaStore依赖这个抽象类,具体Pizza类也依赖于这个抽象类。

优点:高层组件和低层组件都依赖于Pizza对象,想要遵循依赖倒置原则,工厂方法并非是唯一的几千,却是最有威力的技巧之一。

有点像“针对接口编程,不针对实现编程”。这个原则说明了:不能让高层组件依赖低层组件,而且不管高层或低层组件,两者都应该依赖与抽象。(高层组件是由其他低层组件定义为行为的类,本例中,PizzaStore是高层组件,因为它的行为是由具体Pizza类定义的:PizzaStore创建所有不同的具体Pizza类对象,准备、烘培、切片、装盒,而具体Pizza类本身属于低层组件。)

遵循一下指导方针可以帮你避免在OO设计在违反依赖倒置原则&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值