设计模式---复合模式(策略-适配器-装饰者-抽象工厂-组合-观察者)

这篇博客通过一个具体的实例展示了如何在Java中综合运用策略、适配器、装饰者、抽象工厂、组合和观察者六种设计模式。主要功能是在鸭子被观察者调用quack()方法时,自动通知所有观察者并统计叫声次数。博客详细解释了每种模式在实现中的作用,如策略模式让鸭子实现Quackable接口,适配器模式将鹅的honk方法转换为quack,装饰者模式用于扩展功能,抽象工厂模式创建不同类型的鸭子,组合模式使多个鸭子能统一调用quack,而观察者模式则实现了鸭子和观察者之间的通知机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在复合模式中主要以综合运用之前学习的几种模式为目的,包括策略模式-适配器模式-装饰者模式-抽象工厂模式-组合模式-观察者模式

其中以观察者模式比较复杂。


主要实现功能:当被观察者发生quack()方法时会自动通知观察者,且会统计叫声次数。

/*

     * 1 实现Quack接口的鸭子们使用的策略模式,作为一种武器
     * 2 实现Quack接口的鹅是通过适配器模式把鹅传进去  使用相同的接口完成不同的方法,也方便使用多态
     * 3 使用装饰着模式来拓展功能 比继承要好(类似IO保留原来的功能) 此处加上计数功能
     * 4 使用抽象工厂生产带有装饰着鸭子,使用工厂模式把new的过程全部封装起来,外面创建对象只需要调用对应方法即可
     * 5 使用组合模式可以像对待一个对象一样对待集合  即叶节点和组合都要实现同一个接口以完成相同的工作
     * 6 使用观察者模式可以观察个别对象的行为,此处为观察者想要观察个别鸭子的行为,注意鸭子需要委托一个observable来通知观察者

     */


下面分开按照模式来详细拆分代码:

1 策略模式

所有的鸭子都要实现Quackble接口来实现quack方法,每一个鸭子都要实现,此处Quackble又继承QuackObservable,是因为鸭子是一个被观察者,也要实现注册观察者和通知观察者的方法,只不过这里鸭子是委托给专门的类去做这件事,在后面观察者模式会被详细提到。

MallardDuck使用策略模式


<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值