转自:moon1128
http://blog.csdn.net/moon1128/archive/2005/01/08/245435.aspx
合成
/
聚合复用原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新的对象通过向这些对象的委派达到复用已有功能的目的。
简短的表述:要尽量使用合成
/
聚合,尽量不要使用继承。
合成和聚合都是关联的特殊种类。聚合用来表示“
has-a
”关系或者整体与部分的关系,而合成则用来表示一种强的多得“
has-a
”关系。在一个合成关系里,部分和整体的生命周期是一样的。一个对象在同一个时间内只能属于一个合成关系,一个合成关系中的成分对象是不能与另一个合成关系共享的。
这种复用是黑盒复用
。
继承复用通过扩展一个已有对象的实现来得到新的功能。
继承复用破坏包装,因为继承将超类的实现细节暴露给子类。
这种复用是白盒复用
。
如果超类的实现发生改变,那么子类的实现也不得不发生改变的。
“
Is-A
”是严格的分类学意义上的定义,意思是一个类是另一个类的“一种”。
“
Has-A
”是表示某一个角色具有某一项责任。
继承是“
Is-A
”关系。合成
/
聚合是“
Has-A
”关系。
分享到:
相关推荐
java 设计模式与Jar库 里氏代换原则LSP 依赖倒转原则DIP 接口隔离原则ISP 合成/聚合复用原则CARP
开-闭原则(OCP):一个软件实体应当对扩展开放,对修改关闭。 ...合成/聚合复用原则(CARP):要尽量使用合成/聚合,尽量不要使用继承。 迪米特法则(LoD):一个对象应当对其他对象有尽可能少的了解
1、“开-闭”原则(Open-Closed Principle,OCP) 2、里氏替换原则(Liskov Substitution Principle,LSP...5、合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP) 6、迪米特法则(Law of Demeter,LoD)
1.5.5 合成/聚合复用原则(CARP) 9 1.5.6 迪米特法则(LAW OF DEMETER LOD) 10 1.5.7 单一职责原则(SIMPLE RESPONSIBILITY PINCIPLE SRP) 10 创建型模式 11 2.1 SINGLETON单件模式 11 2.1.1 典型的SINGLETON类 11 ...
Java接口 com.javapatterns.liskov 里氏代换原则 com.javapatterns.dip 依赖倒转原则 com.javapatterns.isp 接口隔离原则 com.javapatterns.carp 组合/聚合复用原则 com.javapatterns.lod ...
com.javapatterns.carp 组合/聚合复用原则 com.javapatterns.chainofresp 责任链模式 com.javapatterns.chainofresp.scheduler 专题:定时器与击鼓传花 com.javapatterns.command 命令模式 ...
五、 合成/聚合复用原则(CARP) 六、 迪米特法则(LoD) C#设计模式(4)-Simple Factory Pattern 一、 简单工厂(Simple Factory)模式 二、 Simple Factory模式角色与结构: 三、 程序举例: 四、 Simple ...
五、 合成/聚合复用原则(CARP) 21 六、 迪米特法则(LoD) 22 C#设计模式(4)-Simple Factory Pattern 24 一、 简单工厂(Simple Factory)模式 24 二、 Simple Factory模式角色与结构: 24 三、 程序举例: 25 ...
CARP问题的元启发式算法综述,李庆华,李波,本文全面综述了国内外用于求解容量约束弧路径问题(CARP问题)及其变异形式的各种元启发式算法的研究现状,指出了元启发式算法的�
论文研究-求解双层CARP优化问题的知识型遗传算法.pdf, 双层CARP优化问题首先考虑物流系统的宏观配置问题,然后考虑相关服务的完成问题. 提出了一种求解双层CARP优化问题...
Carp, 无需GC的静态类型的lisp,用于实时应用 警告这是一个研究项目,这里的大量信息可能会变得过时和误导,没有任何解释。 不要把它用于任何重要的东西 !更新(,26,2017 ): 总重写现在是活动的;如果你想查看旧...
求解双层CARP优化问题的演化学习型遗传算法,邢立宁,,双层CARP(Capacitated Arc Routing Problem)优化问题的研究对象通常是某个城市或地区,首先聚焦于该地物流系统的宏观配置,然后考虑相关服务�
Linux redhat5_4 postfix perl-Carp-Clan-5.3-1.2.1.noarch.rpm
matlab_CARP协议路由协议
离线安装包,亲测可用
carp 鲤鱼 眼似真珠鳞似金,时时动浪出还沉。 河中得上龙门去,不叹江湖岁月深。 ##demo site there is a site available. 开发快速启动 application.yml配置好数据库链接(mysql) 启动AdminApplication或...
第10 章 合成/聚合复用原则(CARP) ....... 115 10.1 合成和聚合的区别.....................115 10.2 复用的基本种类.........................115 10.3 从代码重构的角度理解.............117 第11 章 迪米特法则...
CARP监控(全球CARP状态) 基本服务发现和监视(服务状态) pfSense版本/更新可用 包更新可用 模板pfSense活动:OpenVPN服务器用户身份验证 发现以用户身份验证模式连接到OpenVPN服务器的OpenVPN客户端 监视...
离线安装包,亲测可用
离线安装包,亲测可用