行為類模式比較多:
責任鏈模式,命令模式,直譯器模式,迭代器模式,訪問者模式,備忘錄模式,中介者模式,觀察者模式, 狀態模式,策略模式,模板方法。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 使用場景 多個類只是在演算法或行為上稍有不同 演算法需要自由...