TOP

设计模式——前言

分类

创建型(Creational)、结构型(Structural)、行为型(Behavioral)​

要点

  • 好的面向对象设计——应对变化、提高复用
  • 在变化点处应用设计模式
  • 重构关键技法  静态-->动态
      早绑定-->晚绑定
      继承-->组合
      编译时依赖-->运行时依赖 
      紧耦合-->松耦合
  • 设计模式应用的前提是至少要有一个稳定点,也至少要有一个变化点。设计模式最大的作用就是在稳定和变化中寻找隔离点,然后分离它们,从而来管理变化。

里氏替换原则

里氏替换原则(Liskov Substitution Principle,LSP)的含义是:要保证子类能“无害地”替换基类。

类B派生自类A,现在,把程序中所有A类实例都换成B类实例,同时使得所有A类指针都指向B类实例,若此时程序仍然能够运行且不发生逻辑错误(如不会由做加法变成做减法),则称B对A的扩展满足里氏替换原则。

里氏替换原则不仅是对子类的约束,也是对父类的约束。那就是:父类尽量不要改动,即使不得已要改动,也要保证能兼容所有子类(即可以被任何子类所代替)。例如,父类A(如超级英雄类)中方法foo用来计算角色武力值,子类B(如蝙蝠侠类)用来计算蝙蝠侠的武力值。现在,把父类A的foo方法改为计算角色的生命值。此时,子类B不能代替父类A,因为B.foo用来计算武力值,不能用来计算生命值(即此时A.foo的功能)。

参考[1][2]。
posted @ 2022-02-06 22:09  同勉共进  阅读(139)  评论(0编辑  收藏  举报