headfirst_复合模式_Duck
2015-10-25 10:46:56 2 举报
HeadFirst设计模式中的Duck模式是一种结构型设计模式,它强调的是“如果它走起来像鸭子,叫起来也像鸭子,那么它就是鸭子”。这种模式的核心思想是将不同的行为和数据封装到不同的对象中,使得它们可以互相替换。在Duck模式中,我们定义了一个抽象的“鸭”类,然后创建了两个具体的“鸭子”类:一个是“会飞的鸭子”,另一个是“会游泳的鸭子”。这两个类都实现了“鸭”类的接口,但是它们的具体行为是不同的。这样,我们就可以通过改变具体的行为来改变整个程序的行为,而不需要修改其他的代码。
作者其他创作
大纲/内容
两个不同的工厂,各自生产铲平家族;DuckFactory创建鸭子,CountingDuckFactory创建被QuackCounter修饰着包装过的鸭子
QuackObservable
registerObserver(Observer observer);notifyObservers()
Observable
ArrayList observersQuackObservable duck
registerObserver(Observer observer) notifyObservers()
MallarDuck
registerObserver()notifyObservers()quack()
每个Observable都有一个QuackObservable实例,用来跟踪它的观察者,当调用quack()呱呱叫的时候,调用该方法
装饰者。。。
DecoyDuck
DuckCall
GooseAdapter
Goose goose
QuackCounter
Quackable duckstatic int numberOfQuack;
registerObserver(Observer observer);notifyObservers()getNumberOfQuack()
适配器。。。
RubberDuck
QuackObservable有一组方法,任何Observable都要实现这组方法
RedheadDuck
Flock
ArrayList ducks
add(quackable)registerObserver(Observer observer);notifyObservers()
DuckFactory
createMallarDuck()createRedheadDuck()createDuckCall()createRubberDuck()
Quackable
quack()
AbstractDuckFactory
Quackologist
update(QuackObservable)
鸭子模拟器使用工厂创建鸭子
CountingDuckFactory
组合。。。
DuckSimulator
Observer
Quackologist实现了Observer接口,可以观察Observable;
Quackable是一个接口,具有呱呱叫的行为;任何的鸭子都必须实现这个接口
0 条评论
下一页