开闭原则(OCP)》的相关内容

对于OCP原则的困惑

我对OCP原则的困惑: ocp原则的基本思想是对于扩展是开放的,对于更改是封闭的。该原则在java中的实现是通过接口完成的,可是在具体操作中功能的扩展是一定会出现变化的,这样怎么是对更改是封闭的呢? 比如说我定义了一个接口Interface A,他的一个实现class B,我在调用B来完成功能时这样做A temp = new B(); 这样的话当我给他另外一个实现class C时,我的客户 ...
by yhc0125 2004-09-22 浏览 (24024) 回复 (87) 关键字:

OO的五大原则中的 LSP(zt)

OO的五大原则中的 LSP(里氏替换原则) 现将近期整理的文档提供给大家,这里对LSP做重点的介绍,望对大家有帮助,在学习和使用OO设计的时候,我们应该明白:OO的出现使得软件工程师们能够用更接近真实世界的方法描述软件系统。然而,软件毕竟是建立在抽象层次上的东西,再怎么接近真实,也不能替代真实或被真实替代。 OO设计的五大原则之间并不是相互孤立的。彼此间存在着一定关联,一个可以是另一个 ...
by guohui_fz 2008-01-18 浏览 (621) 回复 (0) 关键字:

面向对象设计准则

摘抄自《敏捷软件开发-原则、方法与实践》-Robert C. Martin (1)SRP 单一职责原则 就一个类而言,应该仅有一个引起它变化的原因。 职责即为"变化的原因". (2)OCP 开放封闭原则 软件实体(类、模块、函数等)应该是可以扩展的,但是不可修改。 对于扩展是开放的,对于更改是封闭的. 关键是抽象.将一个功能的通用部分和实现细节部分清晰的分离开来. 开发人 ...
by yangzhichao 2008-03-28 浏览 (713) 回复 (0) 关键字:

基础知识: 需求!

我就不明白, 一个简简单单的需求分析, 在经过了这么多专家的仔细阐述分析之后,怎么让大家搞得越来越复杂了? 什么是面向接口? 就是你分析了需求, 根据需求定义了接口, 然后所有东西都围着这个接口转. 有人可能觉得一个类通过重构变得那样太不可接受了. 那么我请问, 你的重构的底线是什么? 类变成什么样你可以接受? 你那么关心类的实现方法干什么? 你到底是面向接口编程还是面向类编程? 一个模块 ...
by ajoo 2004-08-20 浏览 (55696) 回复 (237) 关键字:

关于构造函数,静态工厂,抽象工厂,容器配置等的辨析

呵呵.发现激烈的争论对发现双方的问题还是有所帮助的.大家心浮气躁之下,很有可能露出破绽. 不过,要真正解决问题,还是要心平气和下来.否则一直吵闹下去除了闹一肚子气不会有什么结果的. 通过和readonly, charon的讨论.我发觉确实有必要把构造函数,静态工厂,抽象工厂,容器配置这几个有联系也有区别的东西辨析一下. 好吧,开吹. 一.问题的提出. 假设我的系统有这样一个接口: [ ...
by ajoo 2004-08-18 浏览 (26003) 回复 (61) 关键字:

依赖倒置(DIP)

所谓依赖,指代码中的耦合。依赖倒置,是相对于传统的面向过程的设计结构而言,面向对象的结构把依赖关系倒置了。 DIP原则: 高层模块不应该依赖于低层模块,二者都应该依赖于抽象。高层模块只应该包含重要的业务模型和策略选择,低层模块则是不同业务和策略实现。首先高层模块和低层模块都要抽象出来,高层抽象不依赖于高层和低层模块的具体实现,最多只依赖于低层的抽象。高层的实现独立于低层模块不应该依赖于低层模块, ...
by samuelray 2008-04-15 浏览 (1090) 回复 (0) 关键字: dip oo principle 设计原则

OO的五大原则中的 LSP(zt)

OO的五大原则中的 LSP(里氏替换原则) 现将近期整理的文档提供给大家,这里对LSP做重点的介绍,望对大家有帮助,在学习和使用OO设计的时候,我们应该明白:OO的出现使得软件工程师们能够用更接近真实世界的方法描述软件系统。然而,软件毕竟是建立在抽象层次上的东西,再怎么接近真实,也不能替代真实或被真实替代。 OO设计的五大原则之间并不是相互孤立的。彼此间存在着一定关联,一个可以是另一个 ...
by guohui_fz 2008-01-18 浏览 (146) 回复 (0) 关键字:

设计模式中的一般原则

如何学习设计模式? 1 先理解概念,再学习原则先理解OO的基本概念,比如:封装、继承、多态、组合/聚合、依赖等,理解各概念的内涵,弄清楚这些概念的具体实现方式及各实现方式的优缺点。2 先学习原则,再学习模式设计原则是蕴含在设计模式后最根本的思想,掌握了基本的设计原则可以做到不拘泥于某个具体的设计模式,可以更容易的理解设计模式,知道在何种情况下应该采用某种模式,可以自己创造合理的设计模式。设计原则可 ...
by LuChar 2008-04-05 浏览 (99) 回复 (0) 关键字:

软件设计的七大原则(摘)

转自 http://aladdin.javaeye.com/blog/40809 http://blog.csdn.net/ponent2005/archive/2005/07/18/428305.aspx 一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的指责.应该把多于的指责分离出去,分别再创建一些类来 ...
by someyuan 2008-04-14 浏览 (109) 回复 (0) 关键字:

软件设计应遵循的原则

转自 http://aladdin.javaeye.com/blog/40809 http://blog.csdn.net/ponent2005/archive/2005/07/18/428305.aspx 一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因,如果你能想到多于一个的动机去改变一个类,那么这个类就具有多于一个的指责.应该把多于的指责分离出去,分别再创建一些类来 ...
by jamesby 2007-03-19 浏览 (1512) 回复 (0) 关键字:

google背后的分布式架构

Google背后的分布式计算架构策略 Google是与众不同的。它的独特不仅仅表现于革新的思维和充满创意的应用 (比如那个大堂里的地球模型),更在于其有别常规的IT策略……   加利福尼亚州山景城(Mountain View)Google公司(Google,下称Google)总部有一个43号大楼,该建筑的中央大屏幕上显示着一个与Google地球(Google Earth)相仿的世界地图,一个转动 ...
by dogstar 2008-05-29 浏览 (996) 回复 (0)

C++最重要的语法-const, private

公司有个同事也是使用C++开发,代码质量从我个人角度来看感觉非常差,几个明显地方: 1、类、对象的概念非常混乱,某些类只能生成一个对象,多了肯定有问题了。这导致无法在一个进程中监听多个端口,当然人家的解决办法就是用多进程。 2、类与类之间强耦合,可以说除了一些小工具类以外,没有任何一个类可以单独拿出来使用,所有类里面的成员都是public,因为你不知道哪个其它类还要使用这个成员。线程函数因为要 ...
by qiezi 2007-06-10 浏览 (1514) 回复 (12)

JavaEye2.0开发计划正式启动,每个人都参与进来吧

JavaEye网站成立快三周年了,但是一直到现在,还只是一个论坛而已,将JavaEye网站扩展成为一个综合性的软件技术交流社区,一直是我的梦想,也是很多JavaEye会员的愿望。 在我和我的团队决定采用ruby on rails之后,我就意识到这是一个极好的敏捷web2.0项目实战探索的机会。JavaEye的每个会员都是我们的敏捷客户,JavaEye网站最终做成什么样子,不是由我决定的,而是由你 ...
by robbin 2006-08-07 浏览 (14551) 回复 (111)

java工作感悟

干了快一年的j2ee开发,从一个非计算机专业的成为了一名程序员。虽然工作经验不是很丰富,但觉得什么框架的不是很重要,重要的是对java语言的掌握和对oop的理解。 这些天项目作完了,闲下来看看书,觉得以前写的代码简直就是垃圾呀。那就不是编程,感觉象是在编竹筐。真正的程序员是要有内功的。框架只是个花架式。工作的时候你肯定会用的,而且你的公司也不会让你不会使用的。 这两天看书,有什么经典的句子我就贴 ...
by jerry_ju 2008-03-13 浏览 (112) 回复 (0)

google search

这篇文章中,我们介绍了google,它是一个大型的搜索引擎(of a large-scale search engine)的原型,搜索引擎在超文 本中应用广泛。Google的设计能够高效地抓网页并建立索引,它的查询结果比其它现有系统都高明。这个原型的全文和超连接的数据库至少包含24‘000 ‘000个网页。我们可以从 http://google.stanford.edu/ 下载。 设 计搜索引擎 ...
by dogstar 2008-05-29 浏览 (277) 回复 (0)

企业版和社区版?开源和闭源?MySQL CEO对Slashdot报道的澄清

许多网站报道了MySQL的新特性将只会出现在企业版而不是社区版中。Slashdot报道了Sun正打算关闭MySQL的源代码,并指出“Sun在真正的开源方面有着糟糕的历史。”在Jeremy Cole's的博客上,有一片回帖 MySQL提供的一些特性(尤其是在线备份方面的)将只会出现在企业版。这极大改变了他们的开发方式——之前这些特性会出现在企业版和社 ...
by robertlyc 2008-04-21 浏览 (1141) 回复 (2) 关键字: mysql

2008移动终端的争夺战

诺基亚、爱立信公司的首席技术官都已驻扎在硅谷办公,他们不得不来到这里,因为他们突然发现苹果和谷歌已经开始威胁到他们的业务。2007年,iPhone、Gphone无疑是最热门的词汇,就连微软也提出了Mphone(Multi-phone)的概念,认为手机应该融合多种无线技术、多种输入技术和多种应用功能。   “2008年会成为MID(移动互联网设备)元年。”业内人士预测。这一判断主要是基于明年上半年 ...
by canco 2008-01-24 浏览 (688) 回复 (0) 关键字: 手机 2008

推荐知识库条目

Comming soon