设计模式的六大原则
开闭原则:
百度百科:在面向对象编程领域中,开闭原则规定“软件中的对象(类,模块,函数等等)应该对于扩展是开放的,但是对于修改是封闭的”,这意味着一个实体是允许在不改变 它 的源代码的前提下变更它的行为。该特性在产品化的环境中是特别有价值的,在这种环境中,改变源代码需要代码审查,单元测试以及诸如此类的用以确保产品 使用质量的过程。遵循这种原则的代码在扩展时并不发生改变,因此无需上述的过程
个人见解:在现有的软件项目或模块中,如果需要新增一个模块,无需去修改源代码以及改逻辑,而是对其进行扩展,新增代码,不影响其正常的功能!
通俗的讲:就是程序好扩展,容易维护和升级。
里氏代换原则:
百度百科:里氏代换原则(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