一杯清酒邀明月
天下本无事,庸人扰之而烦耳。

一、开闭原则(Open-Closed Principle, OCP)

  对软件实体的改动,最好用扩展而非修改的方式,如果要修改代码,尽量用继承或组合来扩展类的功能,而不是直接修改代码。

二、里氏替换原则

  尽量把父类设计成抽象类或者接口,让子类继承父类或实现父类接口,子类可以扩展父类的功能,但不能够改变父类原有的功能。

三、单一职责原则

  一个类只承担一个职责。

四、接口隔离原则

  接口最小化。接口中的方法尽量少,和单一职责类似

  1)单一职责针对的是类

  2)接口隔离针对的是接口

五、依赖倒置原则

  面向接口/抽象类编程,而不是面向实现编程。

六、迪米特法则

  1)类向外公开的方法应该尽可能的少

  2)依赖的对象尽可能的少(只依赖应该依赖的对象)

七、合成/聚合复用原则

  合成(Composition,也称为组合)和聚合(Aggregation)都是关联的特殊种类

  尽量使用合成/聚合的方式,而不是使用继承。有助于你保持每个类被封装,并被集中在单个任务上。这样类和类继承层次会保持较小规模,并且不太可能增长为不可控的庞然大物。

 

七大设计原则之间的关系

  开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段;

  第一要明确,所有的原则都是为了实现面向对象设计的可扩展性,可复用性,可维护性而定义的。

  一个已有的代码模块,为了实现可扩展性,需要对外保持开放;为了实现可复用性,需要保持独立(单一职责,高内聚,低耦合);为了实现可维护性,需要对内封闭(对已有代码模块不要进行修改)。

posted on 2022-04-11 14:19  一杯清酒邀明月  阅读(142)  评论(0编辑  收藏  举报