设计模式——面向对象设计原则


设计原则名称


设计原则简介


重要性


单一职责原则


类的职责要单,不能将太多的职责放在一个类中


四颗星


开闭原则


软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能


五颗星


里氏替换原则


在软件系统中一个可以接受基类对象的地方必然可以接受一个子类对象


四颗星


依赖倒转原则


要针对抽象层编程,而不要针对具体类编程


五颗星


接口隔离原则


使用多个专门的接口来取代一个统一的接口


两颗星


迪米特法则


一个软件实体对其它实体的引用越少越好,或者说如果两个类不必彼此直接通信,那个这两个类就不应当发生直接的相互作用,而是通过引一个第三者发生间接交互


三颗星


合成复用原则


在系统中应该尽量使用组合和聚合关联关系,尽量少使用甚至不使用继承关系

一、单一职责原则:

定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。就一个类而言,应该仅有一个引起它变化的原因。

二、开闭原则:

一个软件实体应当对扩展开放,对修改关闭。也就是说在设计一个模块的时侯,应当使这个模块可以在不被修改的前提下被扩展,即实现在不修改原代码的情况下改变这个模块的行为。

三、里氏替换原则

定义一:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型S是类型T的子类型。

定义二:所有引用基类(父类)的地方必须能透明地使用其子类的对象。

四、依赖倒转原则

高层模块不应该依赖低层模块,它们都应该依赖抽像。抽象不应该依赖于细节,细节应该依赖于抽象。要面向接口编程,不要针对实现编程。

五、接口隔离原则

定义:客户端不应该依赖那些它不需要的接口(这里的接口指方法)。尽量防止接口污染,接口职责单一,单一职责原则在接口编程方面的应用。

定义二: 一旦一个接口太大,则需要将它分成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。

六、合成复用原则

尽量使用对象组合,而不是继承来达到复用的目的。

七、迪米特法则

(1)不要和“陌生人”说话

(2)只与你的直接朋友通信

(3)每个软件单位对其它的单位都只有最少的知识,而且局限于那些与本单位密切相关的的软件单位。

时间: 2024-10-14 10:46:31

设计模式——面向对象设计原则的相关文章

设计模式-面向对象设计原则

七种常用的面向对象设计原则 单一职责原则(Single Responsibility Principle,SRP): 一个类只负责一个功能领域中的相应职责. 开闭原则(Open-Close Principle,OCP): 软件实体应对外扩展开放,而对修改关闭. 里氏代换原则(Liskov Substitution Principle,LSP): 所有引用基类对象的地方能够透明的使用其子类的对象. 依赖倒换原则(Dependence Inversion Principle,DIP): 抽样不应该依

设计模式2 面向对象设计原则

面向对象设计原则  原则的目的 面向对象设计原创表  单一职责原则案例 开闭原则 案例 依赖倒转原则 案例 面向对象设计原则  对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一.在面向对象设计中,可维护性的复用是以设计原则为基础的.每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平.  面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含

【小话设计模式】面向对象设计原则

1.单一职责原则 单一职责原则的核心思想就是:系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成.英文缩写SRP  Single Responsibility Principle 单一职责原则-->"高内聚,低耦合",每个类应该只有一个职责,此外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 优点: 可以降低类的复杂度: 提高类的可读性,提高系统的可维护性: 变更引起的风险降低. 2.里氏替换原则 里氏

面向对象设计原则,设计模式

面向对象设计原则之一:单一职责原则 面向对象设计原则之二:开放封闭原则 面向对象设计原则之三:里氏替换原则 面向对象设计原则之四:依赖倒置原则 面向对象设计原则之五:迪米特法则 Java之美[从菜鸟到高手演变]之设计模式 Java之美[从菜鸟到高手演变]之设计模式二

UML类图与面向对象设计原则—设计模式01

1. 引言     从大一开始学习编程,到如今也已经有两年了.从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具.学习过程中也无意识的了解了一些所谓的设计模式,如今打算系统的学习.学习以书<设计模式的艺术--软件开发人员内功修炼之道/刘伟著>为主.       所谓设计模式,即是前人对某类相似问题的抽象给出的解决方案.书中给出了23(Gof)+1(简单工厂模式)种设计模式.每种模式的学习将关注以下几点:名称(Name),问题(Problem),解决方

C++ 设计模式2 (面向对象设计原则)

1. 变化是复用的天敌! 面向对象设计的最大优势在于 : 抵御变化 2. 重新认识面向对象 理解隔离变化: 从宏观层面来看,面向对象的构建方式更能适应软件的变化, 能将变化所带来的影响减为最小. 各司其职: 从微观层面来看,面向对象的方式更强调各个类的”责任“ (代码示例中,各个类型图形,各自实现自己的draw) 由于需求变化导致的新增类型不应该影响原来类型的实现 ——各负其责. 对象是什么? 从语言实现的层面,对象是封装了代码和数据. 从规格层面讲,对象是一系列可被使用的公共接口. 从概念层面

设计模式和面向对象设计原则

1:策略模式 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 封装变化,多用组合少用继承,针对接口编程而不是针对实现编程. 2:观察者模式 观察者模式定义了对象一对多的依赖关系,这样一来,当一个对象状态改变,依赖它的所有的对象都会收到通知并自动更新. 为对象之间的松耦合设计而努力. 3:模板方法模式 模板方法模式在一个方法中定义了算法的骨架,而讲一些步骤延迟到子类中实线,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤.

设计模式(三)面向对象设计原则之单一职责原则

引用自:http://blog.csdn.net/lovelion  作者:刘伟 单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小.单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责, 或者可以定义为:就一个类而言,应该只有一个引起它变化的原因. 单一职责原则告诉我们:一个类不能太"累"!在软件系统中,一个类(大到模块,小到方法)承担的 职责越多,它被复用的可能性就越小,而

Java程序员应该了解的10个面向对象设计原则

面向对象设计原则: 是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator.Observer这样的设计模式,而不重视面向对象的分析和设计.甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程. 众所周知,Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计.查看Ap