Head First设计模式读书笔记-第一章 Strategy Pattern 策略模式

第一章

继承的缺点:多个子类继承自同一个父类,当变更父类的时候,会导致某些子类添加不想要的属性或方法

 

软件设计总是在不停变更的,变更的原因多种多样,

设计原则:

  1. 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混合在一起。
  2. 针对接口编程,而不是针对实现编程。
  3. 多用组合少用继承
  4. 为了交互对象之间的松耦合设计而努力,松耦合将对象之间的互相依赖降到最低。
  5. 开发-关闭原则:类应该对扩展开放,对修改关闭。
  6. 依赖倒置原则(Dependency Inversion Principle):要依赖抽象,不要依赖具体
  7. 最少知道原则:只和亲密的朋友谈话
  8. 好莱坞原则:你别调用我们,我们会调用你
  9. 单一责任:一个类应该只有一个引起变化的原因

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

策略模式 Strategy Pattern

定义

定义算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户.

示例

以鸭子设计为例:

  1. 将行为抽取为对象,FlyBehavior和QuackBehavior。
  2. 针对行为对象有不同的子类实现。
  3. Duck抽象父类持有行为对象的属性(引用)
  4. Duck子类的继承抽象父类Duck,可以使用父类的属性。子类通过对父类属性的变更实现动态变化行为。

类的UML类图

 

 

第一章总结

OO基础

抽象、封装、多态、继承

OO原则

封装变化

多用组合、少用继承

针对接口编程、不针对实现编程

OO模式

策略模式—定义算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值