码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式的六大原则

时间:2019-06-10 15:34:55      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:可读性   六大原则   逻辑   接口编程   五个   基础   pen   出现   灵活   

开闭原则:

百度百科:面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变                            它 的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查单元测试以及诸如此类的用以确保产品                              使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程

个人见解:在现有的软件项目或模块中,如果需要新增一个模块,无需去修改源代码以及改逻辑,而是对其进行扩展,新增代码,不影响其正常的功能!

                        通俗的讲:就是程序好扩展,容易维护和升级

里氏代换原则:

百度百科:里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用                         的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是 “开-                           闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

个人见解这个讲的是继承关系,子类继承父类,子类可以去替换父类,而不影响的程序的正常运行,父类才能被复用,子类也能够在父类的基础上增加新的行为。

                       通熟的讲:子类一定要能替换父类,并且能在其增加新的行为。

依赖倒转原则:

百度百科:依赖倒置原则(Dependence Inversion Principle)是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样                          就降低了客户与实现模块间的耦合。

个人见解:程序设计的时候,把功能用接口或者抽象去描述,具体的功能和实现,让实现类去操作,针对接口编程

                       通熟讲:降低模块间的耦合。

接口隔离原则

百度百科:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

个人见解:使用多个隔离的接口,使用起来更灵活

                      通熟讲:提高程序设计灵活性。

 

迪米特法则

百度百科:迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。                         英文简写为: LoD.

个人见解:软件中实体与实体之间的应该减少相互作用,让其独立起来,方便后期维护

                       通熟讲:降低类之间的耦合,减少对其他类的依赖。

单一职责原则

百度百科:单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。                         该原则由罗伯特·C·马丁(Robert C. Martin)于《敏捷软件开发:原则、模式和实践》一书中给出的。马丁表示此原则是基于汤姆·狄马克(Tom DeMarco)和Meilir                           Page-Jones的著作中的内聚性原则发展出的。

个人见解:接口和类之间单继承,让类独立起来,只负责一个模块

                     通熟讲:类的复杂性降低,可读性提高,可维护性提高。

参考了:http://www.woshipm.com/pd/779447.html

 

设计模式的六大原则

标签:可读性   六大原则   逻辑   接口编程   五个   基础   pen   出现   灵活   

原文地址:https://www.cnblogs.com/2828sea/p/10997843.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!