作者H45 (!H45)
看板OOAD
标题Re: [问题] Facade Pattern
时间Wed Sep 19 00:44:14 2007
※ 引述《hanta (向下一站出发)》之铭言:
: 不知道贵版可不可以问Design Pattern的问题 XD
: 如果不可以的话,版主就不用客气,删了它吧 ^^"
: The Facade object should be a fairly simple advocate or facilitator. It
: should not become an all-knowing oracle or "god" object.
: 我在某个网站上看到有关於Facade Pattern的讨论,可是上面这段话实在不是很理解它
: 到底在说什麽,所以想请问一下对Design Pattern有研究的大师可以给我解惑一下。
: 感谢~!
我不是大师,只是个管板的小仆。
Facade Pattern 是任一个中大型的专案都会用到的一种 Design Pattern
在把多个琐碎的小物件拼装成系统的一套流程时
会设定每个小物件的属性,并且执行每个小物件的功能
当小物件多而杂的时候,这一连串的设定和功能会变得非常麻烦
而事实上我们真正关心的是:
这一连串的小步骤到底对我们的「工作产品」有什麽样的意义。
所以 Facade Pattern 把这些小步骤封装在一个类别里面
以一个或少数几个「方法」来描述这整串步骤
每次我们想要做这一连串的小步骤,只要呼叫这个「方法」就可以达成目标了!
举例而言:
某个 BBS 连线软体上面的按钮为「连线到 PTT」。
虽然只有一个命令,但是要完成它的话,要说还不太简单
必须先建立 IP, Port, 连线到远端机器之後使用 Telnet Protocal 进行沟通
再把收到的讯息画到图形使用者介面上,其中还牵扯到解析封包的内容。。。
为了简化「连线到 PTT 」的程式码
我们套用 Facade Pattern 把上述琐碎的步骤封装在一个类别中
下次要「连线到 PTT」的时候,就只要呼叫这个新类别的方法就可以了!
附带一提,Facade Pattern 很像在做抽象化
把不重要的事情隐藏起来,而去关心真正重要的部分。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.127.91
1F:→ freesamael:大师! 09/19 01:14