離弦之Ray

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks

           

          Singleton Pattern

          針對一些在應用中只會有一個對象存在的類而總結的模式。

          令人意想不到的是,它是通過聲明該類的構造函數為私有這種方法來實現的。

          疑問就是,既然構造函數都成私有了,那怎么來創建這個類的對象呢?

          解答就是通過在類中聲明一個靜態方法,返回這個對象。

          典型的寫法是

          public static Singleton getInstance(){

           if(uniqueInstance==null){uniqueInstance = new Singleton();}

          return uniqueInstance;

          }

          這個模式的精髓就這么簡單,剩下的就是線程對對象的操作安全,要把這個方法加上synchronized關鍵字。

          Command Pattern

          書中是以餐館點菜作比來講述這個模式的。

          其中的對比概念如下

          Customer-------Client

          Order------------Command

          Waitress--------Invoker

          Cook------------Receiver

          Take order--------setCommand

          orderUp-----------excute

          怎么來解釋呢?說白了,就是把調用類要達成的操作封裝成一個Command對象,就像點菜那張單子一樣,當然這個Command要符合一定的規則實現Command接口,里面非常重要的一個方法就是execute

          setCommand方法相當于waitress把菜單遞給了廚師,在接收者方面他只管運行execute,具體做什么傳過來的command對象都已經設定好了。

          Adapter & Façade

          適配器模式其實沒什么多說的,就是要把傳過去的對象要實現接收者支持的格式,那個格式實際上就是一個接口。

          Façade模式是一種衍生物,它的目的是讓操作簡單化。將一系列不同對象中的操作整合,提供給其它類調用接口書上的例子是家庭影院,要看部電影,要開這個電器,開那個電器,通過Façade模式,將要看電影所必須的動作整合起來,一鍵搞定。明白了這點,也就理解了這個模式。

          posted on 2007-09-18 15:48 離弦之ray的技術天空 閱讀(179) 評論(0)  編輯  收藏 所屬分類: Design Pattern
          主站蜘蛛池模板: 彭山县| 乌鲁木齐县| 舞钢市| 大田县| 临安市| 西乡县| 安乡县| 贵州省| 朝阳县| 阳春市| 若羌县| 石门县| 万州区| 开远市| 麻江县| 佛山市| 汤阴县| 安龙县| 佛冈县| 德安县| 建宁县| 喀喇| 溧水县| 尚义县| 榕江县| 巩义市| 满洲里市| 遵化市| 竹溪县| 大厂| 福建省| 云南省| 安达市| 阳东县| 阿图什市| 永安市| 十堰市| 张家界市| 江津市| 大关县| 九龙县|