设计模式的七大原则(Java)

1、OOP三大基本特性

OOP

面向对象程序设计(Object Oriented Programming)做为一种新方法,其本质是以创建模型体现出来的抽象思惟过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更广泛、更集中、更深入地描述客体的特征。经过创建模型而达到的抽象是人们对客体认识的深化。设计

封装

封装,也就是把客观事物封装成抽象的类,而且类能够把本身的属性和方法只让可信的类操做,对不可信的进行信息隐藏。对象

继承

继承是指这样一种能力,它可使用现有的类的全部功能,并在无需从新编写原来类的状况下对这些功能进行扩展。继承

多态

多态指一个类实例的相同方法在不一样情形有不一样的表现形式。具体来讲就是不一样实现类对公共接口有不一样的实现方式,但这些操做能够经过相同的方式(公共接口)予以调用。接口

2、OOD七大原则

面向对象设计(OOD)有七大原则,它们互相补充ip

开-闭原则

Open-Close Principle(OCP),即开-闭原则。开,指的是对扩展开放,即要支持方便地扩展;闭,指的是对修改关闭,即要严格限制对已有内容的修改。开-闭原则是最抽象也是最重要的OOD原则。简单工厂模式、工厂方法模式、抽象工厂模式中都提到了如何经过良好的设计遵循开-闭原则。ci

里氏替换原则

Liskov Substitution Principle(LSP),即里氏替换原则。该原则规定“子类必须可以替换其父类,不然不该当设计为其子类”。换句话说,父类出现的地方,都应该能由其子类代替。因此,子类只能去扩展基类,而不是隐藏或者覆盖基类。it

依赖倒置原则

Dependence Inversion Principle(DIP),依赖倒置原则。它讲的是“设计和实现要依赖于抽象而非具体”。一方面抽象化更符合人的思惟习惯;另外一方面,根据里氏替换原则,能够很容易将原来的抽象替换为扩展后的具体,这样能够很好的支持开-闭原则。io

接口隔离原则

Interface Segration Principle(ISP),接口隔离原则,“将大的接口打散成多个小的独立的接口”。因为Java类支持实现多个接口,能够很容易的让类具备多种接口的特征,同时每一个类能够选择性地只实现目标接口。ast

单一职责原则

Single Responsibility Principle(SRP),单一职责原则。它讲的是,不要存在多于一个致使类变动的缘由,是高内聚低耦合的一个体现。程序设计

迪米特法则/最少知道原则

Law of Demeter or Least Knowledge Principle(LoD or LKP),迪米特法则或最少知道原则。它讲的是“一个对象就尽量少的去了解其它对象”,从而实现松耦合。若是一个类的职责过多,因为多个职责耦合在了一块儿,任何一个职责的变动均可能引发其它职责的问题,严重影响了代码的可维护性和可重用性。

合成/聚合复用原则

Composite/Aggregate Reuse Principle(CARP / CRP),合成/聚合复用原则。若是新对象的某些功能在别的已经建立好的对象里面已经实现,那么应当尽可能使用别的对象提供的功能,使之成为新对象的一部分,而不要再从新建立。新对象可经过向这些对象的委派达到复用已有功能的效果。简而言之,要尽可能使用合成/聚合,而非使用继承。

相关文章
相关标签/搜索