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

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

          BlogJava 聯(lián)系 聚合 管理
            1 Posts :: 196 Stories :: 10 Comments :: 0 Trackbacks
          考慮您要撰寫(xiě)一個(gè)Web Mail程式,您手上已經(jīng)有一些已經(jīng)開(kāi)發(fā)好的元件(Component),像是開(kāi)發(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ì)很喜歡透過(guò)Facade來(lái)操作背後的元件,所以您的Facade介面設(shè)計(jì),通常要在元件依賴性及元件的支接操作性之間作個(gè)平衡。

          posted on 2007-04-17 10:38 張金鵬 閱讀(282) 評(píng)論(0)  編輯  收藏 所屬分類: Structural 模式
          主站蜘蛛池模板: 汉阴县| 和静县| 梁平县| 抚顺县| 广平县| 习水县| 乌兰浩特市| 衡水市| 郁南县| 班戈县| 皋兰县| 托里县| 军事| 沧源| 嫩江县| 博野县| 新宾| 绿春县| 连州市| 建湖县| 无锡市| 白银市| 苗栗县| 平昌县| 浙江省| 衡阳县| 阳城县| 鄯善县| 丰顺县| 故城县| 微山县| 凤庆县| 洮南市| 罗山县| 富宁县| 自贡市| 麻栗坡县| 新竹县| 迁西县| 辽中县| 蛟河市|