head first 设计模式(一)

设计模式是程序员之间的共享词汇

  • 良好的面向对象设计必须具有可复用、可扩充、可维护三个特性
  • 大多数的模式和原则,都是着眼于软件变化的

设计原则一:抽取代码

1.需要改变的代码抽出来,所以他们的改变可以不影响其他代码
2.抽出来的代码如果面向接口编程,可以把它们独立于之前的超类,也就是说抽出来的代码已经不特定服务于某一超类,代码的复用效果更好

设计原则二:面向接口编程

1.抽出的代码作为接口的特定实现类,基类可以动态改变
2.针对“超类型”接口编程:变量的声明类型为超类型。这就意味着具体实现超类的对象都可以指定为该变量。
3.父类声明时用抽象类声明,子类中实例化的时候实例具体的子类
4.可以用set方法实现动态化(重新实例化所要调用的对象)->即在运行时改变状态

设计原则三:多用组合,少用继承

策略模式:

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

优点
  • 策略分离,易于扩展和维护
  • 策略可以自由切换
  • 避免条件判断
缺点
  • 策略需要都暴露出去
  • 每个策略都是一个类,复用率不高

你可能感兴趣的:(head first 设计模式(一))