策略模式:使算法在不影響客戶端的情況下發生變化。
例如某寶上的一件商品,有時候8折並返現3元、有時候7折返現1元、有時候9折不返現、有時候不打折返現2元等等,我們可以看到這個商品不同時刻要計算利潤或者什麼的時候是不一樣的,現在就可以用到策略模式瞭。
代碼:
public abstract class Algorithm { public abstract void method(); } public class Algorithm1 extends Algorithm { @Override public void method() { } } public class Algorithm2 extends Algorithm { @Override public void method() { } } public class Algorithm3 extends Algorithm { @Override public void method() { } } public class Client { private Algorithm algorithm; }
當需要更換算法實現的時候我們隻需要更換Client對象持有的Algorithm的實現就可以瞭
學習更多設計模式請參考:入門設計模式之匯總篇
策略模式:使算法在不影響客戶端的情況下發生變化。
例如某寶上的一件商品,有時候8折並返現3元、有時候7折返現1元、有時候9折不返現、有時候不打折返現2元等等,我們可以看到這個商品不同時刻要計算利潤或者什麼的時候是不一樣的,現在就可以用到策略模式瞭。
代碼:
public abstract class Algorithm { public abstract void method(); } public class Algorithm1 extends Algorithm { @Override public void method() { } } public class Algorithm2 extends Algorithm { @Override public void method() { } } public class Algorithm3 extends Algorithm { @Override public void method() { } } public class Client { private Algorithm algorithm; }
當需要更換算法實現的時候我們隻需要更換Client對象持有的Algorithm的實現就可以瞭