第一章 软件架构设计原则

开闭原则

  • 对扩展开放,对修改关闭,强调用抽象构建框架,用实现扩展细节

举例:

依赖倒置原则

  • 高层模块不应该依赖低层模块,两者都因依赖抽象

举例:

单一职责原则

  • 一个类不要存在多个导致其改变的原因,需求发生变更时,修改其中一个职责的代码就有可能导致另一个职责的功能发生故障

接口隔离原则

  • 用多个专门的接口,而不是使用单一的总接口

设计接口时需要注意:

  1. 一个类对另一个类的依赖应建立在最小的接口之上
  2. 建立单一的接口,不要建立庞大臃肿的接口
  3. 尽量细化接口,接口中的方法尽量少

迪米特原则

也叫最少知道原则,尽量降低类与类之间的耦合度。

  • 只和朋友交流,不和陌生人说话

里氏替换原则

  • 一个软件实体使用于其父类,那么也一定适用于其子类

也就是说子类可以扩展父类的功能但是不能改变父类原有的功能

  1. 子类可以实现父类的抽象方法,但是不能覆盖父类的非抽象方法
  2. 子类可以增加自己特有的方法
  3. 子类的方法重载父类的方法时,方法的 入参 要更加宽松
  4. 子类的方法重载父类的方法时,方法的 返回 要比父类更加严格或和父类一样

合成复用原则

  • 尽量使用对象组合/聚合而不是继承关系达到软件复用的目的,可以使系统灵活降低耦合度