细心!用心!耐心!

吾非文人,乃市井一俗人也,读百卷书,跨江河千里,故申城一游; 一两滴辛酸,三四年学业,五六点粗墨,七八笔买卖,九十道人情。

BlogJava 联系 聚合 管理
  1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
考慮您要撰寫一個Web Mail程式,您手上已經有一些已經開發好的元件(Component),像是開發Web Mail所需要的SMTP處理類、允許上傳附檔的FileUpload類,以及Web安全相關的API、其它相關的Package等等。

當您拿到一些現成的元件,並打算在您的應用程式中使用它們的話,您不應該直接將這些元件耦合至您的應用程式上,例如:
Facade

上面的作法會讓您的應用程式直接與多個元件耦合,這種作法不但與元件的依賴度高,日後要修改應用程式本身,或是更換掉依賴的元件都有困難。

您應該定義一個Facade介面,在當中定義好商務邏輯,例如寄送附件檔案的方法(method),然後在一個實現類中,組合您手邊的元件,使其達成您所希望的商務行為,例如:
Facade

如上圖所示的,您的應用程式本身將不直接依賴於您的元件,而是依賴一個介面,當您想要更改某個商務行為的實作時,只要修改實現的類就可以了,應用程式本身不用作任何修改。

Facade模式的結構如下:
Facade

Facade模式隱藏了各個元件之間的合作行為,以及元件本身的操作與設定細節,固而必失去了一些直接操作元件的方便性,所以對於喜歡追求與操作細節的程式設計人員而言,不會很喜歡透過Facade來操作背後的元件,所以您的Facade介面設計,通常要在元件依賴性及元件的支接操作性之間作個平衡。

posted on 2007-04-17 10:38 张金鹏 阅读(269) 评论(0)  编辑  收藏 所属分类: Structural 模式

只有注册用户登录后才能发表评论。


网站导航: