Java核心技术Java学习笔记

设计模式设计原则

2017-06-21  本文已影响20人  安静点就睡吧

1、单一职责原则
2、里氏替换原则
3、依赖倒置原则
4、接口隔离原则
5、迪米特原则
6、开闭原则

1、单一职责原则

定义职责原则定义:

There should never be more than one reason for a class to change.

    意思是:一个类,应当只有一个引起它变化的原因;即一个类应该只有一个职责。
就一个类而言,应该只专注于做一件事和仅有一个引起变化的原因,这就是所谓的单一职责原则。该原则提出了对对象职责的一种理想期望,对象不应该承担太多的职责,正如人不应该一心分为二用。唯有专注,才能保证对象的高内聚;唯有单一,才能保证对象的细粒度。对象的高内聚与细粒度有利于对象的重用。一个庞大的对象承担了太多的职责,当客户端需用该对象的某一个职责时,就不得不将所有的职责都包含进来,进而造成冗余代码。

单一职责的优点有以下几个方面:


2、里氏替换原则

里氏替换原则定义:

在面向对象的语言中,继承是必不可少的、优秀的语言机制,它主要有以下几个优点:

相应的,继承也存在缺点,主要体现在以下几个方面:

里氏替换原则定义了一个规范,它包含4层含义:

在设计模式里体现里氏替换原则的有如下几个模式:


3、依赖倒置原则

依赖倒置原则英文名称是:Dependence Inversion Principle,简称DIP
依赖倒置原则的定义:

High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions.

翻译过来,包含三个方面:

依赖倒置原则在Java语言中表现是:

    依赖倒置原则更加精确的定义就是“面向接口编程”-OOD(Object Oriented Design)的精髓之一。依赖倒置原则可以减少类之间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。依赖倒置原则是JavaBean、EJB和COM等组件设计模型背后的基本原则。


    依赖倒置原则的本质就是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,互不影响,实现模块间的松耦合。在项目中使用这个原则只要遵循以下规则:


4、接口隔离原则

接口隔离原则的具体含义如下:

接口隔离原则是对接口的定义,同时是对类的定义,应尽量使用原子接口或原子类,其中原子在实践应用中可以根据以下几个规则来衡量:


迪米特法则

迪米特法则又叫最少知识原则(Least Knowledge Principle, LKP),意思是一个对象应当对其它对象尽可能少的了解。迪米特法则不同于其它的OO设计原则,它具有多种表述方式,其中具有代表性的是以下几种表述:


开闭原则

开闭原则的原文是:

Software entities should be open for extensions,but close for modification.

    意思是:一个软件实体应当对扩展开放,对修改关闭。
这个原则说的是,在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,即应当可以在不必修改源代码的情况下改变这个模块的行为。
在面向对象的编程中,开闭原则是最基础的原则,起到总得指导作用,其它原则(单一职责、里氏替换原则、依赖倒置、接口隔离、迪米特法则)都是开闭原则的具体形态,即其它原则都是开闭原则的手段和工具。开闭原则的重要性可以通过以下几个方面来体现。


总结

具体可参考书籍:《设计模式(Java版)》。


上一篇 下一篇

猜你喜欢

热点阅读