設計模型之命令模式含UML完整例項

2021-10-05 02:50:43 字數 2979 閱讀 9108

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 模式的主要優點有 其主要缺...