《开放---封闭原则(OCP)》的相关内容
相关讨论
对于OCP原则的困惑
我对OCP原则的困惑:
ocp原则的基本思想是对于扩展是开放的,对于更改是封闭的。该原则在java中的实现是通过接口完成的,可是在具体操作中功能的扩展是一定会出现变化的,这样怎么是对更改是封闭的呢?
比如说我定义了一个接口Interface A,他的一个实现class B,我在调用B来完成功能时这样做A temp = new B();
这样的话当我给他另外一个实现class C时,我的客户 ...
by yhc0125 2004-09-22 浏览 (25305) 回复 (87) 关键字:
面向对象设计准则
摘抄自《敏捷软件开发-原则、方法与实践》-Robert C. Martin
(1)SRP 单一职责原则
就一个类而言,应该仅有一个引起它变化的原因。
职责即为"变化的原因".
(2)OCP 开放封闭原则
软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。
对于扩展是开放的,对于更改是封闭的.
关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来. ...
by yangzhichao 2008-03-28 浏览 (952) 回复 (0) 关键字:
OO的五大原则中的 LSP(zt)
OO的五大原则中的 LSP(里氏替换原则)
现将近期整理的文档提供给大家,这里对LSP做重点的介绍,望对大家有帮助,在学习和使用OO设计的时候,我们应该明白:OO的出现使得软件工程师们能够用更接近真实世界的方法描述软件系统。然而,软件毕竟是建立在抽象层次上的东西,再怎么接近真实,也不能替代真实或被真实替代。
OO设计的五大原则之间并不是 ...
by guohui_fz 2008-01-18 浏览 (769) 回复 (0) 关键字:
关于构造函数,静态工厂,抽象工厂,容器配置等的辨析
呵呵.发现激烈的争论对发现双方的问题还是有所帮助的.大家心浮气躁之下,很有可能露出破绽.
不过,要真正解决问题,还是要心平气和下来.否则一直吵闹下去除了闹一肚子气不会有什么结果的.
通过和readonly, charon的讨论.我发觉确实有必要把构造函数,静态工厂,抽象工厂,容器配置这几个有联系也有区别的东西辨析一下.
好吧,开吹.
一.问题的提出.
假设我的系统有这样一个接口:
[ ...
by ajoo 2004-08-18 浏览 (26837) 回复 (61) 关键字:
讨论interface在java编程中的作用
yhc0125的那个帖子本来只是讨论OCP的,所以我还是另外开一贴,专门邀请ajoo讨论interface在java编程中的作用问题。
先说说你的那个回贴。
firebody直接就晕过去了
我还是认真的看了看,然后决定不一条一条的回复你的回复了。这样反而不利于深入的讨论,Trustno1说这样的讨论甚是无趣,我也觉得,但是讨论这个问题的意义,还是要比“拿着尺子测量杆盘刀叉与餐桌距离”要大一些 ...
by 庄表伟 2004-09-24 浏览 (28706) 回复 (62) 关键字:
相关博客
“开放-封闭”原则--OOD的基石
钻研OO设计模式有一段时间了,可是天生愚笨,总是不得真谛,于是想是不是该跳出来仔细的想一想了呢?为什么需要设计模式?GoF的23设计模式的设计原则是什么呢?在查阅了一些资料后,仿佛有了一些感觉,其实设计模式的原则就是OOD的原则,或者说设计模式是为了达到OOD的远景而提出的,所以正真的想掌握OO的精髓,那么学习设计模式是最好的途径,而想真正掌握设计 ...
by aladdin_leon 2006-12-26 浏览 (669) 回复 (0) 关键字: 面向对象
OO的五大原则中的 LSP(zt)
OO的五大原则中的 LSP(里氏替换原则)
现将近期整理的文档提供给大家,这里对LSP做重点的介绍,望对大家有帮助,在学习和使用OO设计的时候,我们应该明白:OO的出现使得软件工程师们能够用更接近真实世界的方法描述软件系统。然而,软件毕竟是建立在抽象层次上的东西,再怎么接近真实,也不能替代真实或被真实替代。
OO设计的五大原则之间并不是 ...
by guohui_fz 2008-01-18 浏览 (200) 回复 (0) 关键字:
设计模式中的一般原则
如何学习设计模式? 1 先理解概念,再学习原则先理解OO的基本概念,比如:封装、继承、多态、组合/聚合、依赖等,理解各概念的内涵,弄清楚这些概念的具体实现方式及各实现方式的优缺点。2 先学习原则,再学习模式设计原则是蕴含在设计模式后最根本的思想,掌握了基本的设计原则可以做到不拘泥于某个具体的设计模式,可以更容易的理解设计模式,知道在何种情况下应该采用某种模式,可以自己创造合理的设计模式。设计原则可 ...
by LuChar 2008-04-05 浏览 (141) 回复 (0) 关键字:
相关圈子讨论
Groovy无痛AOP之旅
Groovy无痛AOP之旅
http://www.infoq.com/cn/articles/aop-with-groovy
http://www.infoq.com/cn/articles/aop-with-groovy
http://www.infoq.com/cn/articles/aop-with-groovy
http://www.infoq.com/cn/articles/aop-wi ...
by shiren1118 2007-11-22 浏览 (503) 回复 (0)
Web开发之华山论剑—Web表现层跑完龙套唱主角
一直以来,表现层的开发在Web应用的讨论中似乎总是一个小角色。Java的开发者们热烈讨论着的Spring、Hibernate、Struts、WorkWeb也都跟它没有什么关系。技术专家们甚至理直气壮的喊出了Web表现层应当“As thin as possible”口号,于是越来越多人们开始笃信有关业务逻辑的开发技术是武学之正宗,而表现层的开发技术不过是些旁门左道、花拳绣腿。 ...
by hotbarsmu 2008-09-19 浏览 (97) 回复 (0)
google背后的分布式架构
Google背后的分布式计算架构策略
Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略……
加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动 ...
by dogstar 2008-05-29 浏览 (2052) 回复 (0)
dxpcom v0.1 发布
由于windows上一直遇到DLL加载失败的问题,所以测试是在linux上进行的。
dxpcom v0.1下载地址
包括对xpidl的修改,增加了-m d选项,用来产生d接口。-m dwrap选项还在编写中,生成的代码现在还无法使用。
mozilla/xpcom/*.d大部分是用修改过的xpidl生成的,另有一些是使用htod工具转换的。
有空可以帮我测试一下,目前还不保证转换完全正确,但 ...
by qiezi 2007-04-16 浏览 (11093) 回复 (161)
相关新闻
Scala2.7.1 RC1已经发布
引用Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。
Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。
Scala是 ...
by Eastsun 2008-04-13 浏览 (662) 回复 (0) 关键字: scala
struts2新特性预览
看到关于框架选择的帖子,贡献一点东西,如果你有选择struts的意向,还是直接等struts2好了。
Struts2与Struts1的对比
来源:struts2开发组 翻译:tianxinet(胖猴)
Action 类:
• Struts1要求Action类继承一个抽象基类。Struts1的一个普遍问题是使用抽象类编程而不是接口。
• Struts 2 Action类可以实现 ...
by tianxinet 2006-08-21 浏览 (1465) 回复 (0) 关键字:
四个有害的java习惯
John O'Hanley 的这篇文章列举了四个有害的java编码习惯,并提出了改正方案。
这四个习惯普遍存在于java程序员中,并且已经被广泛接受,大家都习以为常,流毒甚远。
1.对局部变量(local variables),字段(fields),参数(method arguments)这三种变量的命名没有区分,造成了代码的阅读困难,增加了代码的维护成本。
...
by jolestar 2008-07-29 浏览 (6751) 回复 (56) 关键字:

