一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

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

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

二、里氏替换原则

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

三、单一职责原则

  一个类只承担一个职责。

四、接口隔离原则

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

  1)单一职责针对的是类

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

五、依赖倒置原则

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

六、迪米特法则

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

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

七、合成/聚合复用原则

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

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

 

七大设计原则之间的关系

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

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

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

posted on   一杯清酒邀明月  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示