補課 進行時 設計模式 8 命令模式

2022-03-17 18:03:25 字數 1333 閱讀 1695

「補課」進行時:設計模式系列

命令模式是乙個高內聚的模式,其定義為:

encapsulate a request as anobject,thereby letting you parameterize clients with differentrequests,queue or log requests,and support undoable operations.(將乙個請求封裝成乙個物件,從而讓你使用不同的請求把客戶端引數化,對請求排隊或者記錄請求日誌,可以提供命令的撤銷和恢復功能。)

public abstract class receiver
這裡使用抽象類的原因是接受者可以有多個,有多個就需要定義乙個所有特性的抽象集合——抽象的接收者。

public class concretereceiver1 extends receiver 

}public class concretereceiver2 extends receiver

}

每乙個接受者都必須定義一定的業務邏輯。

public abstract class command
public class concretecommand1 extends command 

@override

public void execute()

}public class concretecommand2 extends command

@override

public void execute()

}

這裡定義了兩個具體的 command 實現類,這裡的每乙個具體命令類,根據建構函式定義了具體是針對哪乙個接受者發出的,同時定義了命令接收的主體。

public class invoker 

public void action()

}

呼叫者就是最終進行方法呼叫的地方,所有的命令都會由呼叫者進行呼叫。

public class test 

}

命令模式也是有缺點的,具體請注意 command 的子類:如果有 n 個命令,問題就出來了, command 的子類就可不是幾個,而是 n 個,這個類膨脹得非常大,所以在使用命令模式的時候需要謹慎。

設計模式8之(命令模式)

若有不恰之處,請各位道友指正 個人覺得,看懂類圖就是學習設計模式的精髓了。命令模式概念 根據類圖寫 結構 參加講座 public void attendlecture public class meetcommand implements command override public void e...

大戰設計模式 8 命令模式

設計模式使用的例子 將乙個請求封裝為乙個物件,從而可以用不同的請求對客戶進行引數化 對請求排隊或者記錄請求日誌,以及支援可撤銷的操作。命令模式是一種物件行為型模式,其別名為動作 action 模式或事物 transaction 模式。command 抽象命令類 乙個抽象類或介面,宣告了執行請求的ex...

設計模式8

15 迭代器模式 迭代器模式 iterator 提供一種方法順序訪問乙個聚合物件中個元素,而又不暴露該物件的內部表示。a 優點 i.迭代器模式分離了集合物件的遍歷行為,抽象出乙個迭代器類來負責,這樣既可以做到不暴露集合的內部結構,又可讓外部 透明地訪問集合內部的資料。ii.支援對聚合物件的多種遍歷。...