摘要: 策略操作定義了策略的輸入和輸出,而把策略的實現工作留給了各個類。這些類以不同的方案來實現同一操作,它們為用戶提供統一的接口,因而這些類可以相互替換。
Strategy模式允許多種策略共存,而代碼不會混亂。策略模式也可以實現模式選擇邏輯和策略本身相分離。
Strategy模式的意圖在于把可選的策略或方案封裝在不同的類中,并在這些類中實現一個共同的操作。
閱讀全文
posted @
2008-04-08 11:52 Paul Lin 閱讀(5367) |
評論 (2) |
編輯 收藏
摘要: 使用狀態模式后,客戶端外界可以直接使用事件Event實現,根本不必關心該事件導致如何狀態變化,這些是由狀態機等內部實現。這是一種Event-condition-State,狀態模式封裝了condition-State部分。
每個狀態形成一個子類,每個狀態只關心它的下一個可能狀態,從而無形中形成了狀態轉換的規則。如果新的狀態加入,只涉及它的前一個狀態修改和定義。
閱讀全文
posted @
2008-04-07 18:02 Paul Lin 閱讀(7621) |
評論 (2) |
編輯 收藏
摘要: 讓方法運行最常見的方式是調用之,但是在很多情況下,我們不能控制和提供方法執行的上下文和時機。這種情況下,可以把方法封裝在對象中。通過在對象中存儲調用方法所需的信息,就可以讓客戶端或者服務決定何時調用這個方法。
Command模式的意圖是把請求封裝在對象中。
--摘自《Java設計模式》第24章:Command(命令)模式
閱讀全文
posted @
2008-04-07 15:13 Paul Lin 閱讀(3475) |
評論 (0) |
編輯 收藏
摘自中國通信網之《通信基礎學習之3G無線基本知識》
·WLAN提供了高帶寬,但卻是在有限的覆蓋區域內(建筑物內以及戶外的短距離)。
·3G網絡支持跨廣域網絡的移動性,但是數據吞吐速度明顯低于WLAN。
·3G網絡是建立在蜂窩架構上的,最適于支持移動環境中的數據服務。蜂窩架構支持不同蜂窩之間的信號切換,從而向用戶提供了全網絡覆蓋的移動性,這種移動性常常通過不同
網絡運營商之間的漫游協議進行擴展。當然,可供移動用戶使用的帶寬是有限的。
·WLAN無線局域網提供了大量的帶寬,但是它覆蓋區域有限(室內最多100米)。它所支持的應用經常通過像筆記本電腦這類便攜式以數據為中心的設備訪問,而非通過以電話為中
心的設備進行訪問。
·語音和數據信號在許多重要的方面不同:語音信號可以錯誤但不能容忍時延;數據信號能夠允許時延但不能容忍錯誤。因此,為數據而優化的網絡不適合于傳送語音信號。反之,
為語音而優化的網絡也不適于數據信號。WLAN主要用于支持數據信號,與此形成對比的是,3G網絡被設計用于同時支持語音和數據信號。
WLAN是一種共享頻帶的技術。在共享頻帶技術中,可用的頻帶帶寬被用戶瓜分。換句話說,無線局域網可以提供11Mbps帶寬容量的事實并不意味著10個用戶同時都使用11Mbps容量。 雖然3G網絡也受到容量的限制,但分組交換的蜂窩技術使它們可以以高容量支持更多數量的用戶。并且由于WLAN在無需許可的頻帶上運行,因此它們也更易受到其他運行在同一頻帶的技術(如藍牙)的干擾。
posted @
2008-04-02 10:52 Paul Lin 閱讀(586) |
評論 (0) |
編輯 收藏
摘要: UML入門知識
閱讀全文
posted @
2008-03-25 15:15 Paul Lin 閱讀(13367) |
評論 (1) |
編輯 收藏
摘要: UML入門知識
閱讀全文
posted @
2008-03-24 17:05 Paul Lin 閱讀(7161) |
評論 (0) |
編輯 收藏
摘要: Memento模式和其它模式的結合應用:
一、“Mementor”模式和“堆棧”的結合-“GUI界面撤銷功能”的實現
二、“Mementor”模式和“Observer”模式的結合-“通知式恢復”
三、“Mementor”模式和“Observer”模式、“責任鏈”模式的結合-“鏈式通知恢復”
四、“Mementor”模式和“Flyweight”模式的結合:減少相同對象的拷貝
閱讀全文
posted @
2008-03-22 17:59 Paul Lin 閱讀(1742) |
評論 (1) |
編輯 收藏
摘要: Memento模式的特點:
在需要提供保存、恢復對象狀態的類中,必須提供兩個方法:
.保存對象當前狀態方法:將對象自身(this)作為參數傳入,創建備忘錄。
.恢復對象之前狀態的方法:取出備忘錄/接收一個備忘錄對象,從中獲取對象之前的狀態
模式的缺點是耗費大,如果內部狀態很多,再保存一份,無意要浪費大量內存.
注意:Memento模式保存的是操作前對象的狀態,而不是操作后對象的狀態;否則就沒辦法做恢復了
閱讀全文
posted @
2008-03-22 17:56 Paul Lin 閱讀(2212) |
評論 (0) |
編輯 收藏
摘要: 下面是Observer模式的實現過程:
·創建一個被觀察者,繼承java.util.Observable
·創建一個觀察者,實現java.util.Observer接口
·注冊觀察著,調用addObserver(Observer observer)
·在被觀察者改變對象內部狀態的地方,調用setChanged()方法,然后調用notifyObservers(Object)方法,通知被觀察者
·在觀察者的update(Object)方法中,對改變做出響應。
閱讀全文
posted @
2008-03-07 13:55 Paul Lin 閱讀(3091) |
評論 (0) |
編輯 收藏
摘要: Flyweight模式一般由幾個部分組成:
·Flyweight接口(抽象類) :定義了一個可共享的元類
·Flyweight實現類:實現了元類中的操作,而且可能會提供一個用于保存內部狀態(共享屬性)的空間
·Flyweight Factory:創建Flyweight的工廠類,創建后將其保存到Flyweight Pool中
·Flyweight Pool:緩沖Flyweight對象的池,通常包含在工廠類中
閱讀全文
posted @
2008-03-05 14:33 Paul Lin 閱讀(2983) |
評論 (0) |
編輯 收藏