1.1 定義與特點
命令(command)模式的定義如下:將乙個請求封裝為乙個物件,使發出請求的責任和執行請求的責任分割開。這樣兩者之間通過命令物件進行溝通,這樣方便將命令物件進行儲存、傳遞、呼叫、增加與管理。
命令模式的主要優點如下:
命令模式的缺點是:
1.2 模式的結構
命令模式包含以下主要角色:
1.3 問題由來
在軟體開發系統中,常常出現「方法的請求者」與「方法的實現者」之間存在緊密的耦合關係。這不利於軟體功能的擴充套件與維護。例如,想對行為進行「撤銷、重做、記錄」等處理都很不方便,因此「如何將方法的請求者與方法的實現者解耦?」變得很重要,命令模式能很好地解決這個問題。在現實生活中,這樣的例子也很多,例如,電視機遙控器(方法的請求者)遙控電視機(命令接收者)
**示例如下:
/**
* @author tbb
* 家用電器類
*/public
abstract
class
/**
* @author tbb
* 空調
*/public
class
airconditioning
extends
@override
public
void
close()
@override
string kind()
}
/**
* @author tbb
* 電視類
*/public
class
tvextends
@override
public
void
close()
@override
string kind()
}
/**
* @author tbb
* 控制器
*/public
class
control
public
void
close
}
public
class
test
}
1.4 解決思路
解決方法就是採用命令模型,第一步將「方法的請求者」與「方法的實現者」進行解耦,例如將電視機遙控器(方法的請求者)和遙控電視機(方法的實現者)解耦,分為電視機遙控器(命令傳送者)通過按鈕(具體命令)來遙控電視機(命令接收者)。
1.5 uml類圖
1.6 解決方案
/**
* @author tbb
* 命令
*/public
inte***ce
command
/**
* @author tbb
* 開啟命令
*/public
class
opencommand
implements
command
public
opencommand
}
/**
* @author tbb
* 關閉命令
*/public
class
closecommand
implements
command
public
closecommand
}
/**
* @author tbb
* 控制器
*/public
abstract
class
control
/**
* @author tbb
* 家電類控制器
*/public
class
householdelectricalcontrol
extends
control
@override
void
open()
@override
void
close()
}
/**
* @author tbb
* 家用電器類
*/public
abstract
class
/**
* @author tbb
* 空調
*/public
class
airconditioning
extends
@override
public
void
close()
@override
string kind()
}
/**
* @author tbb
* 電視類
*/public
class
tvextends
@override
public
void
close()
@override
string kind()
}
public
class
test
}
設計模型之工廠模式 含UML完整例項
1.1 定義 乙個建立產品物件的工廠介面,將產品物件的實際建立工作推遲到具體子工廠類當中。工廠方法模式的主要優點有 使用者只需要知道具體工廠的名稱就可得到所要的產品,無須知道產品的具體建立過程 在系統增加新的產品時只需要新增具體產品類和對應的具體工廠類,無須對原工廠進行任何修改,滿足開閉原則 工廠方...
設計模型之抽象工廠模式 含UML完整例項
1.1 定義與特點 用來生產不同產品族的全部產品。對於增加新的產品,無能為力 支援增加產品族 使用抽象工廠模式一般要滿足以下條件 1 系統中有多個產品族,每個具體工廠建立同一族但屬於不同等級結構的產品。2 系統一次只可能消費其中某一族產品,即同族的產品一起使用。抽象工廠模式除了具有工廠方法模式的優點...
設計模型之裝飾者模式 含UML完整例項
1.1 定義與特點 裝飾 decorator 模式的定義 指在不改變現有物件結構的情況下,動態地給該物件增加一些職責 即增加其額外功能 的模式,它屬於物件結構型模式。有點像 模式的功能,物件提供了與真實物件相同的方法,並可以擴充套件真實物件的功能 裝飾 decorator 模式的主要優點有 其主要缺...