设计模式
外观
模式
Facade Pattern
状态
模式
Facade Pattern
设计模式
意图
为子系统中的一组接口提供一
个一致的界面。 Facade 定义了一个
高级的接口,这个接口使得这一子系
统更加容易使用。
设计模式
动机
将一个系统划分成若干个子系统
有利于降低系统的复杂性。一个常见
的设计目标是使系统间的通信和相互
依赖关系达到最小。实现该目标的途
径之一就是引入一个外观对象 (Facade)
,它为子系统中较一般的设施提供了一
个单一而简单的界面。
设计模式
动机
Facade
客户类
子系统类
设计模式
例子:甜蜜的家庭影院
Amplier
tuner
dvdPlayer
cdPlayer
On()
O()
setCd()
setDvd()
setStereoSound()
setSurroundSound()
setTuner()
setVolume()
toString()
DvaPlayer
amplier
On()
O()
eject()
pause()
play()
setSurroundAudio()
setTwoChannelAudio()
stop()
Projector
dvdPlayer
On()
O()
tvMode()
wideScreenMode()
toString()
CdPlayer
amplier
On()
O()
eject()
pause()
play()
stop()
toString()
Tuner
amplier
On()
O()
setAM()
setFM()
setFrequency()
toString()
Screen
Up()
Down()
toString()
PopcornPopper
On()
o()
pop()
toString()
TheaterLights
On()
o()
dim()
toString()
有很多类、很多交互,
还有一大群接口,等
着我们去学习、使用
你花费了很大力气和时间连接、
调试好了所有装置之后,你准
备开始享受一部电影 ...