面向对象的设计法则系列--bobtarr

面向对象的设计法则系列--bobtarr

ID:9102635

大小:369.00 KB

页数:19页

时间:2018-04-17

面向对象的设计法则系列--bobtarr_第1页
面向对象的设计法则系列--bobtarr_第2页
面向对象的设计法则系列--bobtarr_第3页
面向对象的设计法则系列--bobtarr_第4页
面向对象的设计法则系列--bobtarr_第5页
资源描述:

《面向对象的设计法则系列--bobtarr》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、WebScopeGroupForumhttp://webscope.cosoft.org.cn/forum/index.jsp面向对象的设计法则系列BobTarr著版本:0.1.0编写:outmyth日期:2002-11-20页数:共19页WebScope小组http://www.webscope-group.orgCopyright(C)2002-2003WebScopeGroup,AllRightsReserved。修改说明日期版本号摘要作者2002-11-200.1.0创建outmythWebScop

2、e小组http://www.webscope-group.orgCopyright(C)2002-2003WebScopeGroup,AllRightsReserved。WebScopeGroupForumhttp://webscope.cosoft.org.cn/forum/index.jsp目录n1:优先使用(对象)组合,而非(类)继承3组合的优点和缺点4继承4继承的优点和缺点4Coad规则5继承/组合示例15继承/组合示例27继承/组合示例38继承/组合示例49继承/组合总结9n2:针对接口编程,而非

3、(接口的)实现10接口10实现继承和接口继承10接口的好处11接口实例12n3:开放-封闭法则(OCP)12开放-封闭法则12OCP示例13相关法则15(a)单选法则15n4:Liskov替换法则(LSP)16Liskov替换法则16LSP示例17总结19WebScope小组http://www.webscope-group.orgCopyright(C)2002-2003WebScopeGroup,AllRightsReserved。WebScopeGroupForumhttp://webscope.co

4、soft.org.cn/forum/index.jsp【译者注】本文主要是以BobTarr的文章作为翻译的主线(黑色),GOF(紫色),C++View上翻译RobertMartin的文章(褐色)和Webscope(蓝色和绿色)上的文章以及译者的见解为辅。1:优先使用(对象)组合,而非(类)继承[FavorCompositionOverInheritance]n组合(对象)组合是一种通过创建一个组合了其它对象的对象,从而获得新功能的复用方法。将功能委托给所组合的一个对象,从而获得新功能。有些时候也称之为“聚合

5、”(aggregation)或“包容”(containment),尽管有些作者对这些术语赋予了专门的含义例如:聚合:一个对象拥有另一个对象或对另一个对象负责(即一个对象包含另一个对象或是另一个对象的一部分),并且聚合对象和其所有者具有相同的生命周期。(译者注:即所谓的“同生共死”关系)(可参见GOF的DesignPatterns:ElementsofReusableObject-OrientedWebScope小组http://www.webscope-group.orgCopyright(C)2002-2

6、003WebScopeGroup,AllRightsReserved。WebScopeGroupForumhttp://webscope.cosoft.org.cn/forum/index.jspSoftware的引言部分)包容:一种特殊类型的组合,对于其它对象而言,容器中的被包含对象是不可见的,其它对象仅能通过容器对象来访问被包含对象。(Coad)n包含可以通过以下两种方式实现:F根据引用(Byreference)F根据值(Byvalue)nC++允许根据值或引用来实现包含。n但是在Java中,一切皆为对

7、象的引用!组合的优点和缺点n优点:F容器类仅能通过被包含对象的接口来对其进行访问。F“黑盒”复用,因为被包含对象的内部细节对外是不可见。F封装性好。F实现上的相互依赖性比较小。(译者注:被包含对象与容器对象之间的依赖关系比较少)F每一个类只专注于一项任务。F通过获取指向其它的具有相同类型的对象引用,可以在运行期间动态地定义(对象的)组合。n缺点:F从而导致系统中的对象过多。F为了能将多个不同的对象作为组合块(compositionblock)来使用,必须仔细地对接口进行定义。继承n(类)继承是一种通过扩展一

8、个已有对象的实现,从而获得新功能的复用方法。n泛化类(超类)可以显式地捕获那些公共的属性和方法。n特殊类(子类)则通过附加属性和方法来进行实现的扩展。继承的优点和缺点n优点:WebScope小组http://www.webscope-group.orgCopyright(C)2002-2003WebScopeGroup,AllRightsReserved。WebScopeGroupForumhttp://webs

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。