开放-封闭原则:软件实体(类、模块、函数等等)应该可以扩展,但是不可以修改。对于扩展是开放的,对于更改是封闭的。 针对的问题:怎样的设计才能面对需求的改变却可以保持相对的稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢? 无论模块是多么的“封闭”,都会存在一些无法对之封闭的变化,...
分类:
其他好文 时间:
2014-12-28 21:58:15
阅读次数:
186
对于扩展是开放的;对于更改是封闭的。 无论模块是多么的“封闭”,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。 在我们最初编写代码时,假设变化不会发生。当变化发...
分类:
其他好文 时间:
2014-12-26 18:35:15
阅读次数:
165
为什么总是“需求”在前面
很久以来都在思考着这个问题,软件设计不是设计在前,而是“需求”在前;信息系统开发不是开发在先而是需求在前;UML中也专门有一重要的图use
case,来进行需求分析;DP中的开放-封闭原则也正是根据各自的需求各司其职。
很小很小的就听过,改造我们的学习,教育改革从“要我学”——到“我要学”
的转变。需求:我想就是我们“需要...
分类:
其他好文 时间:
2014-12-12 19:16:11
阅读次数:
176
S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。SRPThe Single Responsibility Principle单一责任原则OCPThe Open Closed Principle开放封闭原则LSPThe...
分类:
其他好文 时间:
2014-12-11 18:50:00
阅读次数:
257
一、单一职责原则
(1)就一个类而言,应该仅有一个引起它变化的原因;
(2)如果一个类承担的职责过多,就等于把这些职责耦合在了一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力
二、开放封闭原则
三、依赖倒转原则
四、里氏代换原则
五、迪米特法则...
分类:
编程语言 时间:
2014-12-10 18:07:41
阅读次数:
181
1.首先提一下,面向对象三大特性:封装、继承、多态;两大基本原则:单一职责原则和开放封闭原则。这些是最基本的,如果觉得不熟悉,请百度,在此不赘述。2.工厂模式分三种:1)简单工厂模式,2)工厂方法模式,3)抽象工厂模式。这三种模式从上到下逐步抽象,并且更具一般性..
分类:
其他好文 时间:
2014-12-07 06:38:44
阅读次数:
185
1.1 定义 简单工厂增加计算功能需要增加case语句修改工厂类。违背了开放封闭原则。 工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪一个类。 1.2 类图 工厂模式:抽象出一个工厂父类,每一个功能做为一个子工厂。这时候要增加一个计算功能,要在计算类增加一个功能类,并且增加对应...
分类:
其他好文 时间:
2014-12-04 21:25:28
阅读次数:
155
面向对象设计主要是为了软件的可维护、可扩展、可复用和灵活性好。在面对新的需求和更改的时候可以用最小的代价来达到最好的效果。
在设计模式中对面向对象设计有了更进一步的理解。下面先总结一下面向对象设计的六大原则吧。
开放-封闭原则
在我们设计的时候要尽量保持开放-封闭原则。对于增加需求等情况要尽量扩展而不要对类进行修改,避免因为修改而造成不必要的麻烦。开放封闭原则是所有面向对象原则的核心。...
分类:
其他好文 时间:
2014-11-30 15:34:12
阅读次数:
195
(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过和protocol的配合,完成委托诉求。列表row个数delegate自定义的delegate(二)观察者模式应用...
分类:
移动开发 时间:
2014-11-26 01:23:19
阅读次数:
235
1.单一职责原则 一个类,最好只做一件事,只有一个引起他变化的原因否则就应该考虑重构。2.开放封闭原则 软件实体应该是可扩展的,而不是可修改的。也就是说对扩展开放,对修改封闭。主要体现在两个方面:对扩展开放,意味着有新的需求或变化时,可以对现有的代码进行扩展,以适应新的情况。对修改封闭,意味着类.....
分类:
其他好文 时间:
2014-11-26 01:02:08
阅读次数:
279