观察者模式
2017-10-12 19:20:46 2 举报
设计模式——策略模式——UML实例
作者其他创作
大纲/内容
Quack
quack(){//实现鸭子呱呱叫}
Observer
update()
WeatherData
registerObserver()removeObserver()notifyObserver()getTemperature()getHumidity()getPressure()measurementsChanged()
RubberDuck
display()quack()
Duck
quack() swim() display() fly() //其他方法
forecastDisplay
update()display(){//显示天气预报}
RedheadDuck
display()fly()quack()
statisticDisplay
update()display(){//显示最小、平均和最大观测值}
thirdPartDisplay
update()display(){//显示基于观测值的其它内容}
display(){ //外观是红色}
Flyable
fly()
Squeak
quack(){//实现橡皮鸭子吱吱叫}
MuteQuack
quack(){//什么都不做,不会叫}
DisplayElememnt
display()
FlyBehavior
swim() display() //其他方法
QuackBehavior
quack()
观察者
MallardDuck
DecoyDuck
quack(){//覆盖成成什么都不做}display(){ //外观是橡皮鸭}fly{//什么都不做}
Quackable
FlyNoWays
fly(){//什么都不做,不会飞}
currentConditionDisplay
update()display(){//显示当前观测值}
quack(){//覆盖成吱吱叫}display(){ //外观是橡皮鸭}fly{//什么都不做}
Subject
registerObserver()removeObserver()notifyObserver()
FlyWithWings
fly(){//实现鸭子飞行}
FlyBehavior flyBehaviorQuackBahavior quackBehavior
performQuack()swim()display()performFly()//鸭子的其它行为
主题
display(){ //外观是绿色}
quack(){//覆盖成吱吱叫}display(){ //外观是橡皮鸭}
0 条评论
下一页