OO基本原则

1. 单一职责原则(SRP)

一个类应该最多只能有一个因素能够给导致其变化,类中的方法应该都是相关性很高的,即“高内聚”

2. 开放-封闭原则(OC)

- 扩展开放:某模块的功能是可扩展的,则该模块是扩展开放的。软件系统的功能上的可扩展性要求模块是扩展开放的。
     - 修改关闭:某模块被其他模块调用,如果该模块的源代码不允许修改,则该模块修改关闭的。软件系统的功能上的稳定性,持续性要求是修改关闭的。

3. 里氏代换原则(LSP)

利用多态特性,父类作用的地方可以使用其任意子类替代,反之不行

也就是“子类型必须能够替换掉它们的父类型”。一个软件实体如果运用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。在程序中,把父类都替换成它的子类,程序的行为没有变化.(正方形不是长方形),最有难度的约束设计. 

4. 依赖倒转原则(DIP)

(1)高层模块不应该依赖底层模块。两个都应该依赖抽象。

(2)抽象不应该依赖细节,细节应该依赖于抽象.

确保程序“低耦合”

5. 迪米特法则(LoD).又叫最少知识原则(Least Knowledge Principle 简写LKP

一个对象应当对其它对象有尽可能少的了解.如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类须要调用另一个类的某一个要领的话,可以通过第三者转发这个调用。

它强调我们在封装类的时候,在类的设计结构上,每一个类都应当降低成员的访问权限。类与类之间的耦合度越低越好,因为一个类被修改,不会对有关联的其他类也执行 修改。(发布-订阅模式),低耦合.

时间: 2024-10-13 10:19:34

OO基本原则的相关文章

设计模式-观察者模式(上)<转>

本文参考Head First设计模式一书,感觉书中的例子实在很好,很贴切.对模式的知识点进行总结,并对书的源码做了一定注释. 观察者模式要点有二:主题和观察者. 最贴切的案例是:杂志订阅,杂志是主题,观察者是订阅者.当出版新杂志时候,这个事件会自动通知所有的订阅者. 根据OO基本原则,应该针对接口编程(当然原因很多),主题和订阅者一般都作为接口. 下面是Head First的例子,是一个气象站,用户订阅气象信息的服务. 并且,最终用户所要的信息可能是: 针对这个需求,应用观察者模式来实现: 但是

OO设计基本原则

OO本身就是一种大的设计模式,它是随着软件规模越来越大产生出来帮助人们建模和开发的理念,生来就带着封装.继承.多态等可复用基因.为了充分发挥这些基因的功效,使用者需要遵守一定的原则,就是所谓的面向对象设计原则.然而正确地使用这些运用这些原则并不容易,只有把这些原则吸收成为身体一部分的经验丰富的工程师才能在遇到各种问题时,灵活地使用它们.一些OO大师为了方便新手更好地理解OO原则,就根据经验假象了一些软件设计过程中经常碰到的问题,并给出了遵循OO原则的解决这些问题的设计方案,就产生了设计模式,正如

OO (VS) SO

继续上一篇博文<SOA--面向服务的体系架构>,这次主要向大家阐述面向对象和面向服务的关系,请大家多提宝贵意见! OO(ObjectOriented,面向对象),用一张图表示OO进行系统开发的特性: SO(Service-Oriented,面向服务),用一张图表示SO系统开发与运行的特性: 通过这两图的对比,如果抽象一点来说的话,这两张图其实都是一样的,运用同一种思想:通过某种形式,关联颗粒.如果用微观和宏观来说,OO是微观的,SO是宏观的.不追求细节的话,可以说,两者都是抽象出具体形式(对象

OO的五大原则是指SRP、OCP、LSP、DIP、ISP。

OO的高层原则,面向对象设计的基本原则 设计模式之六大原则--开闭原则(OCP) 设计模式之六大原则--迪米特法则(LoD,LKP) 设计模式之六大原则--接口隔离原则(ISP) 设计模式之六大原则--依赖倒置原则(DIP) 设计模式之六大原则--里氏替换原则(LSP) 设计模式之六大原则--单一职责原则(SRP) OO的五大原则是指SRP.OCP.LSP.DIP.ISP. 开闭原则(Open Closed Principle)是Java世界里最基础的设计原则,它指导我们如何建立一个稳定的.灵活

第二章 OO大原则

昨天忙了一天,晚上加班到了12点,虽然工作有时候比较累,但是整体来讲还是比较轻松的,国企加上我是今年才毕业的应届生,导致了现在这种情况.工资也真的不算高...但我觉得最开始还是要踏踏实实一点比较好.学习才是王道嘛,技术好了,功底扎实了,工资自然应该不是问题.今天看的是第二章,OO大原则,这一章可能主要涉及到一些设计模式的基本原则和设计模式,因为这毕竟是软件开发人员的必修课,是成为一个好的软件开发人员的开始,之前完完整整的看了一遍<大话设计模式>,确实写的不错,如果没看过设计模式的可以拿他作为起

OO六大设计原则

什么是设计原则?设计原则是基本的工具,应用这些规则可以使你的代码更加灵活.更容易维护,更容易扩展. 基本原则 封装变化面向接口编程而不是实现 优先使用组合而非继承SRP: The single responsibility principle 单一职责系统中的每一个对象都应该只有一个单独的职责,而所有对象所关注的就是自身职责的完成.只能让一个类有且仅有一个职责. 每一个职责都是一个设计的变因,需求变化的时候,需求变化反映为类职责的变化.当你系统里面的对象都只有一个变化的原因的时候,你就已经很好的

面向对象——三大特性,五大基本原则

三大特性是:封装.继承.多态 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 封装是面向对象的特征之一,是对象和类概念的主要特性. 简单的说,一个类就是一个封装了数据以及操作这些数据的代码的逻辑实体.在一个对象内部,某些代码或某些数据可以是私有的,不能被外界访问.通过这种方式,对象对内部数据提供了不同级别的保护,以防止程序中无关的部分意外的改变或错误的使用了对象的私有部分. 继承是指可以让某个类型的对象获得另一个类型的对象的属

《你必须知道的.NET》读书笔记一:小OO有大智慧

此篇已收录至<你必须知道的.Net>读书笔记目录贴,点击访问该目录可以获取更多内容. 一.对象  (1)出生:系统首先会在内存中分配一定的存储空间,然后初始化其附加成员,调用构造函数执行初始化,这样一个对象实体就完成了出生过程. Person aPerson = new Person("小周" , 25); (2)旅程:在某种程度上就是外界通过方法与对象交互,从而达到改变对象状态信息的过程.这也和人的生存之道暗合. aPerson.ChangeName("Edis

面向对象设计模式5大基本原则

"宇宙万物之中,没有一样东西能像思想那么顽固."        一爱默生 首先明确模式是针对面向对象的,它的三大特性,封装.继承.多态. 面向对象设计模式有5大基本原则:单一职责原则.开发封闭原则.依赖倒置原则.接口隔离原则.Liskov替换原则. 而设计模式都是在面向对象的特性以及5大基本原则的基础上衍生而来的具体实现. 1.单一职责原则(SRP): 1.1,SRP(Single Responsibilities Principle)的定义:就一个类而言,应该仅有一个引起它变化的原因