細(xì)心!用心!耐心!

          吾非文人,乃市井一俗人也,讀百卷書,跨江河千里,故申城一游; 一兩滴辛酸,三四年學(xué)業(yè),五六點(diǎn)粗墨,七八筆買賣,九十道人情。

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

          當(dāng)您拿到一些現(xiàn)成的元件,並打算在您的應(yīng)用程式中使用它們的話,您不應(yīng)該直接將這些元件耦合至您的應(yīng)用程式上,例如:
          Facade

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

          您應(yīng)該定義一個(gè)Facade介面,在當(dāng)中定義好商務(wù)邏輯,例如寄送附件檔案的方法(method),然後在一個(gè)實(shí)現(xiàn)類中,組合您手邊的元件,使其達(dá)成您所希望的商務(wù)行為,例如:
          Facade

          如上圖所示的,您的應(yīng)用程式本身將不直接依賴於您的元件,而是依賴一個(gè)介面,當(dāng)您想要更改某個(gè)商務(wù)行為的實(shí)作時(shí),只要修改實(shí)現(xiàn)的類就可以了,應(yīng)用程式本身不用作任何修改。

          Facade模式的結(jié)構(gòu)如下:
          Facade

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

          posted on 2007-04-17 10:38 張金鵬 閱讀(277) 評(píng)論(0)  編輯  收藏 所屬分類: Structural 模式
          主站蜘蛛池模板: 五台县| 都昌县| 会东县| 米泉市| 洪江市| 西乡县| 清镇市| 邵阳县| 浦县| 会同县| 海盐县| 安国市| 武定县| 莱西市| 淳化县| 崇义县| 略阳县| 乾安县| 治多县| 张家港市| 定兴县| 永兴县| 伽师县| 高安市| 江陵县| 额敏县| 深水埗区| 北辰区| 莱芜市| 菏泽市| 怀宁县| 濮阳市| 沂水县| 齐河县| 江都市| 瓦房店市| 桃园县| 渝北区| 鄂伦春自治旗| 武功县| 固始县|