合成聚合复用原则(设计模式_23)
2017-01-05 10:19
323 查看
在面向对象思想编程中的继承体系中,关于继承,子类继承父类,父类一旦改变会影响到子类,这其实是不灵活的表现,而且继承的越频繁越不好维护,子类与父类有依赖关系存在,而(合成聚合复用原则)的出现,很好的 去改善了继承中这种不灵活性
合成聚合复用原则:的定义就是为了改善继承体现中的,依赖性,不灵活性;
关于合成聚合复用原则:
聚合指的是弱包含关系:例如(人属于人群的一部分,而人不包含了人群)
合成指的是强包含关系:例如(人的手臂属于这个人的一部分,而这个人也包含了这个人的手臂)
以下举例实现:
运行结果:
Project结构图:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006
合成聚合复用原则:的定义就是为了改善继承体现中的,依赖性,不灵活性;
关于合成聚合复用原则:
聚合指的是弱包含关系:例如(人属于人群的一部分,而人不包含了人群)
合成指的是强包含关系:例如(人的手臂属于这个人的一部分,而这个人也包含了这个人的手臂)
以下举例实现:
package com.oop.demo2.person; import com.oop.demo2.Thing; /** * 抽象出一个人类抽象类 * @author Liudeli * */ public abstract class Person { /** * 抽象出一个人的拿东西成为 */ public abstract void take(Thing thing); }
package com.oop.demo2; /** * 抽象出事物抽象类(包含了世界上一起事物) * @author Liudeli * */ public abstract class Thing { /** * 返回事物名称即可 * @return */ public abstract String showName(); }
package com.oop.demo2.person; import com.oop.demo2.Thing; /** * 定义具体男人对象 * @author Liudeli * */ public class ManPerson extends Person{ public void take(Thing thing) { System.out.println("男人拿着:" + thing.showName()); } }
package com.oop.demo2.person; import com.oop.demo2.Thing; /** * 定义一个女人对象 * @author Liudeli * */ public class WomanPerson extends Person{ public void take(Thing thing) { System.out.println("女人拿着:" + thing.showName()); } }
package com.oop.demo2; /** * 定义天堂雨伞具体对象 * @author Liudeli * */ public class TiantangUmbrella extends Thing{ public String showName() { return "天堂雨伞"; } }
package com.oop.demo2; /** * 小米手机具体对象 * @author Liudeli * */ public class MIPhone extends Thing{ public String showName() { return "小米手机"; } }
package com.oop.demo2; /** * 定义LV钱包具体对象 * @author Liudeli * */ public class LVWallet extends Thing{ public String showName() { return "钱包"; } }
package com.oop.demo2; /** * 定义苹果耳机具体对象 * @author Liudeli * */ public class AppleHeadphones extends Thing { public String showName() { return "苹果耳机"; } }
/** * 测试程序(合成聚合复用原则) * @author Liudeli * */ public class Main { public static void main(String[] args) { Person man = new ManPerson(); Person woman = new WomanPerson(); man.take(new 4000 MIPhone()); man.take(new LVWallet()); woman.take(new AppleHeadphones()); woman.take(new TiantangUmbrella()); } }
运行结果:
Project结构图:
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006
相关文章推荐
- 设计模式原则—合成/聚合复用原则(四)
- 【设计模式】六大原则之三(迪米特法则与合成/聚合复用原则)
- 设计模式六大原则-单一职责原则、开放封闭原则、依赖倒转原则、里氏代换原则、迪米特法则、合成/聚合复用原则
- C++设计模式---桥接模式—合成/聚合复用原则
- 设计模式六大原则——合成/聚合复用原则(CARP)
- Java设计模式——合成/聚合复用原则
- 设计模式-OOD的设计原则(5)-"合成聚合复用原则"
- 设计模式六大原则——合成/聚合复用原则(CARP)
- 设计模式-OOD的设计原则(5)-"合成聚合复用原则"
- 设计模式-OOD的设计原则(5)-"合成聚合复用原则"
- 设计模式之 合成聚合复用原则
- 设计模式学习(二十一)————合成/聚合复用原则
- 设计模式—合成/聚合复用原则
- 设计模式原则—合成/聚合复用原则(四)
- 设计模式六大原则(5)合成/聚合复用原则
- 设计模式-OOD的设计原则(5)-"合成聚合复用原则"
- 设计模式六大原则--合成/聚合复用原则
- 桥接模式(Bridge)与合成/聚合复用原则(CARP)
- 设计模式---->组合/聚合复用原则
- 设计模式原则(5)合成聚合原则