用一句话白话一下7大设计原则

在面向对象编程中,SOLID 是五个设计原则的首字母缩写,旨在使软件设计更易于理解、灵活和可维护。

这些原则是由美国软件工程师和讲师罗伯特·C·马丁(Robert Cecil Martin)提出的许多原则的子集,

在他2000年的论文《设计原则与设计模式》中首次提出。

SOLID 原则包含:

  • S:单一职责原则(single-responsibility principle)

  • 一个类或者模块只负责完成一个职责(或者功能),

  • 避免一个类负责多个功能领域,提高类的可读性、可维护性、可扩展性。


  • O:开闭原则(open-closed principle)

  • 软件实体应当对扩展开放,对修改关闭。即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。



  • L:里氏替换原则(Liskov substitution principle)

  • 继承必须确保父类所拥有的性质在子类中仍然成立。


  • I:接口隔离原则(Interface segregation principle)

  • 使用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。


  • D:依赖倒置原则(Dependency inversion principle)

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

  • 抽象不不应该依赖于实现,实现应该依赖于抽象。

  • 要依赖于抽象,不要依赖于具体。实现类之间的依赖通过抽象(接口或抽象类)进行,避免类之间的高耦合。


后来业界又扩展出两条原则:

  1. 迪米特法则(Law of Demeter,LoD)或最少知道原则(Least Knowledge Principle,LKP):一个对象应当对其他对象保持最少的了解,降低类之间的耦合度。

  2. 合成复用原则(Composite Reuse Principle,CRP):尽量使用对象组合/聚合,而不是继承关系达到软件复用的目的。





下面是勇哥对7大原则的白话,如有不妥之处请指正:



单一职责原则

为啥电脑的键盘鼠标显示器不合并成一根线?那样鼠标坏了,整条线都要换


开闭原则

一国两制,坚持社会主义不动摇


里氏替换原则

可以青出于蓝胜于蓝,但是祖传的东西不能变



接口隔离原则

智能手机适合年轻人,但不适合老年人


依赖倒置原则

不要按轮胎->底盘->车身来设计汽车,应该反过来


迪米特法则

只和朋友交流;朋友的事不要知道得太多。



合成利用原则

狗生狗,不可能生出会爬树的狗


其它类比: 阶级固化(农民儿子还是农民,律师儿子还是律师,不会有什么跨阶层的可能);

                  一个罗卜一个坑(只有红罗卜青罗卜的区别,微小变化,不可变身为一颗白菜 )



--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2023-11-15 14:14:16 编辑

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864