设计模式之策略模式

153 阅读1分钟

1.设计时抽出变化的部分


2.针对接口编程,而非实现编程


3.多用组合,少用继承


策略模式定义了算法族,分别封装起来,让他们之间可以互相转换,此模式让算法的变化独立于使用算法的客户

策略模式尽管很灵活,很显然相应的增加了代码实现上的复杂程度。软件设计没有银弹,只有真正相对合适的恰到好处的结构。

软件在开发前及开发后的时间周期内,开发后的运维更新时间明显会更久,所以一个高可用灵巧的面向变化的结构尤为重要。

典型的使用场景在多if else情况下通过多态来更优雅实现

public strategyChoose(String mainName){
    switch (name){
        case "A":
            story = new StoryB(name);
            break;
        case "B":
            story = new StoryA(name);
            break;
        default:
            story = new StoryB(name);
            break;
    }
}