组合设计模式
1.什么时候用组合设计模式
如果在设计一个类的时候, 需要另外一个类的方法时, 就可以使用组合设计模式
2.组合设计模式的写法
在当前类中定义一个被组合类的引用
通过构造函数组合
在需要使用被组合类的方法时, 通过成员变量调用
3.组合设计模式的优点
使用继承也可以访问其他类的方法, 但是会占用Java中唯一的一个继承位置, 组合则不用
使用组合设计模式构造函数中的形参可以定义为一个父类类型, 所有子类对象都可以传入, 让程序变得更为灵活
对应代码:
class CompositePattern
{
public static void main(String[] args)
{
Person p = new Person(new Card());
p.eat();
}
}
class Person
{
private Card card;
Person(Card card)
{
this.card = card;
}
void eat()
{
//Card card = new Card();
//card.shuaka();
card.shuaKa();
System.out.println("吃饭");
}
}
class Card
{
void shuaKa()
{
System.out.println("刷卡");
}
}
class XiongYong extends Card
{
void shuaKa()
{
System.out.println("先刷卡");
}
}
分享到:
相关推荐
黑马程序员-SpringCloud-学习笔记-03-Eureka注册中心
黑马程序员-SpringCloud-学习笔记01-认识微服务
黑马QT讲义,适合QT入门,使用,教程很比较基础,新手可以看看,另外视频链接在哔哩哔哩中。
黑马程序员-SpringCloud-学习笔记-02-微服务拆分及远程调用
黑马程序员 - Java基础教学 - 05 - 面向对象(1).doc
黑马程序员 - 毕向东 - Java基础教学 - 第02天 个人观看视频总结文档
黑马程序员-java32期培训视频(基础+就业)黑马程序员-java32期培训视频(基础+就业)
黑马程序员 - Java基础教学 - 04 - 数组、进制转换、二维数组
黑马程序员 - 毕向东 - Java基础教学 - 第01天 个人观看视频总结文档
黑马程序员-梅兰商城项目实战,包含图片素材和编写源码。
day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda表达式 ...
C++黑马程序员-演讲比赛流程管理系统记录
黑马程序员 - Java基础教学 - 03 - 变量的作用域、for循环、break、continue、内存结构
黑马程序员 - Java基础教学 - 08 - 面向对象(4)-多态.doc
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490901
黑马程序员--毕向东全套Java视屏,讲解的相当全面,各位如果需要,尽快下载哦! 另外如果视频链接存在打不开的问题,请留言,必定及时更新链接。
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490903
黑马程序员 - Java基础教学 - 06 - 面向对象(2) - 关于静态static的那些事.doc
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490899
NULL 博文链接:https://840198532-qq-com.iteye.com/blog/1490705