面向对象的基本原则 与 设计模式

设计原则是一种指导性,比较抽象的理念。而设计模式是为了实现设计原则的一种良好的实践经验。

在接触了一段时间面向对象的程序设计后。不可不学的首先就是设计模式。使用设计模式的目的就是使代码变得更加的清晰,易读,易理解,可重用,可拓展,已维护。

他所带来的好处多多,付出的代价可能只是写代码时需要多写几行。相对于以上的优点,这点代价是微不足道的。

在我看来。实际上并不存在固定的设计模式。设计模式只是对 面向对象的基本原则 的一种良好的实现或者说是一种经验总结,这种经验的总结可以是多样的。(当然,这种实现也会有瑕疵,有利必利弊嘛)。甚至没学过设计模式的人也可能用过设计模式,但那仅仅是无意识的,这种实践并不会经常出现。

遵循设计原则,可以使我们的软件更具灵活性,强壮性。但灵活是需要付出代价的,由多态带来的性能损失就是最明显的一个问题。所以我们需要权衡,需要做出选择,在灵活与性能之间做出选择。


本溯源,促使我们使用这些原则的原因是为了满足需求的变更,于是需求分析就显得格外重要。然而不管怎么充分的需求分析都可能遭遇需求变更,于是预测变化就
成了一个让人头痛的事。还是让我们来看看敏捷设计(XP)是怎么解决这些问题的:"敏捷开发人员不会对一个庞大的预先设计应用那些原则和模式,相反,这些
原则和模式被应用在一次次的迭代中,力图使代码以及代码所表达的设计保持干净。"也就是说敏捷设计通过快速的迭代来刺激变化,让这些变化及早暴露,再根据
变化进行相应改动。很明显这要比一次性完整设计轻松容易的多。

软件开发的全部艺术就是权衡:在简单与复杂之间权衡,在一种方案与另一种方案之间权衡。如果把每个问题、每个权衡的利弊都考虑得清清楚楚,恐怕开发一个应用程序的成本会高得惊人。所以,很多时候我们更依赖自己的审美眼光,用平静的心去设计一个赏心悦目的系统。

面向对象的基本原则 与 设计模式

时间: 2024-10-22 21:41:32

面向对象的基本原则 与 设计模式的相关文章

面向对象编程中的设计模式

面向对象编程中的设计模式 最近在复习(预习)软考,看到了设计模式这个知识点,打算小做总结一下~~ 设计模式分为三种类型,共23种.(红色标注常用的) 创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模式.原型模式. 结构型模式:适配器模式.桥接模式.装饰模式.组合模式.外观模式.享元模式.代理模式. 行为型模式:模版方法模式.命令模式.迭代器模式.观察者模式.中介者模式.备忘录模式.解释器模式(Interpreter模式).状态模式.策略模式.职责链模式(责任链模式).访问者模式.

面向对象的基本原则(四)----依赖倒置原则

描述:A .高层模块不应该依赖于低层模块.二者都应该依赖于抽象.B .抽象不应该依赖于细节.细节应该依赖于抽象. 应 用:要依赖抽象,不要依赖于具体.即针对接口编程,不要针对实现编程.针对接口编程的意思是,应当使用接口和抽象类进行变量的类型声明.参量的类型声明, 方法的返还类型声明,以及数据类型的转换等.不要针对实现编程的意思就是说,不应当使用具体类进行变量的类型声明.参量的类型声明,方法的返还类型声明, 以及数据类型的转换等. 结论:DIP虽然强大,但却不易实现,因为依赖倒转的缘故,对象的创建

面向对象的基本原则(三)------里氏替代原则

一.定义 里氏替代原则(LSP),英文全称是Liskov Substitution Principle,Liskov是该替代原则的提出者.该原则的思想是:在任何父类出现的地方都可以用它的子类来替代,而不影响功能. 其实里氏替代原则的意思就是:同一个继承体系中的对象应该有共同的行为特征.里氏代换原则关注的是怎样良好地使用继承,也就是说不要滥用继承,它是继承复用的基石. 二.好处 里氏替代原则是对开闭原则的扩展.如果要采用开闭原则必然用到抽象和多态,而这又离不开继承,里氏替代原则就是对如何良好继承提

面向对象的基本原则(一)------单一职能原则

一.定义 单一职责原则(SRP),英文全称是Single Responsibility Principle,该原则的思想是:系统中的每一个类都应该只有一个单独的职责,而所有类所关注的就是自身职责的完成. SRP中,把职责定义为“变化的原因”.如果你能想到多个原因去改变一个类,那么这个类就具有多于一个的职责. 二.好处 其实单一职责原则的意思就是开发人员经常说的“高内聚.低耦合”.也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个. 如果一个类有一个以上的职责,

面向对象的基本原则(二)------开闭原则

一.定义 开闭原则(OCP),英文全称是Open for extention, Closed for modification Principle,即对扩展开放,对修改关闭原则.该原则的思想是,可以通过扩展来满足变化,而不需要修改代码,或者说在设计一个模块的时候,应当使这 个模块可以在不被修改的前提下被扩展. 二.实现 实现开闭原则的关键是抽象,抽象是面向对象设计的一个核心特征. 对一个事物抽象化,实质上是在概括归纳总结它的本质.抽象让我们抓住最最重要的东西,从更高一层去思考,这降低了思考的复杂

面向对象六大基本原则的理解

在学习设计模式的时候,总是被推荐先学习一下面向对象的六大原则,学习后果然受益匪浅.以下完全是我对六大基本原则的理解,和官网解释可能有出路,而且我更多是站在设计模式的角度,而不是面向对象的角度理解,如果有什么错误,敬亲谅解. 1.开闭原则 很多教程都把开闭原则作为这六大原则中最基本的原则,也就是说他是各个原则的核心.开闭原则指的是,一个软件实体如类.模块和函数应该对扩展开放,对修改关闭. 至于这个具体怎么理解,我也看了很多教程,有些教程说当我们遇到新的需求,就需要我们对我们模块继承的形式进行扩展,

PHP面向对象编程基本原则

首先祝大家节日快乐!!! 额,不知道你们剁手没,小梦是没有!整整已经错过了第九个年头! 小伙伴是不是有一种感觉,PHP入门的时候简直爱不释手,总是把 "PHP是世界上最好的语言" 挂在嘴边上,觉得他简单,快速完成项目! 然儿,终于有一天,你开发的项目过于庞大的时候,突然发现:我写的代码好乱,扩展性好低,可维护性好差....... 然后你就下定决心要重构你的项目?想来想去,当然是面向对象编程了,然后加上各种设计模式!你就开始干了!!! 下面就给大家讲一下面向对象的设计原则,当然面向对象的

面向对象程序设计(OOP设计模式)-行为型模式之观察者模式的应用与实现

课程名称:程序设计方法学 实验5:OOP设计模式-行为型模式的应用与实现 时间:2015年12月02日三,第3.4节地点:理1 一.实验目的 加深对行为型设计模式的理解以及在开发中的实际应用能力. 二.实验内容 实验内容: 在工业自动化系统中,作为监控端,要求能够实时采集生产线上每一个测点的数据,并根据事先设定好的条件来发出告警.目前,系统可以支持的告警方式在形式上呈现多样化的趋势,主要包括屏幕显示告警.语音发声告警.电话拨号告警.电子邮件告警.手机短信告警以及其他可利用的告警方式等.在设置监控

面向对象的基本原则

五个基本原则: 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化.单一职责原则可以看做是低耦合.高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因. 开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的.也就是,对扩展开放,对修改封闭的. 里氏替换原则(Liskov-Substituion Principle):子类必须能够替换其基类.这一