行為類模式PK 一 策略模式和命令模式

2021-08-31 09:28:59 字數 1207 閱讀 7419

行為類模式比較多:

責任鏈模式,命令模式,直譯器模式,迭代器模式,訪問者模式,備忘錄模式,中介者模式,觀察者模式, 狀態模式,策略模式,模板方法。11個

策略模式由上下文封裝具體的策略類,策略類具體執行。 命令模式,命令封裝具體的命令接收者,命令接收者負責具體實現。 由invoker呼叫命令。

以 zip和gzip為例,進行策略模式和命令模式的比較。

策略模式:

public inte***ce algorithm

public class zip implements algorithm

@override

public boolean uncompress(string source, string to)

}public class gzip implements algorithm

@override

public boolean uncompress(string source, string to)

}public class context

public boolean compress(string source,string to)

public boolean uncompress(string source,string to)

}public class client

}

命令模式:

定義命令,命令引用具體執行者, invoker呼叫命令

public abstract class abstractcmd

public class zipcompresscmd extends abstractcmd

}public class zipuncompresscmd extends abstractcmd

}public class gzipcompresscmd extends abstractcmd

}public class gzipuncompresscmd extends abstractcmd

}public class invoker

public boolean execute(string source ,string to)

}public class client

}

在命令模式中,請求者與執行者分離了, 請求執行者不了解誰具體的執行命令。 由命令本身保證誰具體執行。

行為類模式PK 二 策略模式和狀態模式

策略模式和狀態模式在類圖上十分相似。都是高擴充套件性的設計。兩者最重要的區別是 1.策略模式封裝的是不同的演算法,演算法之間沒有互動,以達到演算法可以自由切換的目的。2.狀態模式封裝的是不同的狀態,以達到狀態切換行為隨之發生改變的目的。舉乙個場景。人在孩童時期玩耍,成年工作,老年退休。按照策略模式是...

行為模式 策略模式

策略模式定義了一系列演算法,並將每個演算法封裝起來,使他們可以相互替換,且演算法的變化不會影響到使用演算法的客戶。需要設計乙個介面,為一系列實現類提供統一的方法,多個實現類實現該介面。設計乙個抽象類,提供輔助函式。抽象策略類介面 public inte ce carfunction 定義乙個策略實現...

行為型(一) 策略模式

1 定義 define a family of algorithms,encapsulate each one,and make them interchangeable.定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。2 使用場景 多個類只是在演算法或行為上稍有不同 演算法需要自由...