精进设计模式

[toc]

模板模式

工厂模式

就是让你可以动态的创建对象, 纯粹是技术上的概念

抽象工厂

将多个工厂绑定在一起, 生产就生产一批产品. 用来提高内聚.

比如生产AK枪和AK子弹的两个工厂绑定在一起, 变成一个AK制造厂, 制造厂的职责就是生成一套完整的枪. 客户不在需要了解怎么配套!

从代码上就是解决了, 多个目标值相同的switch case的出现.

策略模式

结构:

main {
    swich x{
        case A:
            foo1()
        case B:
            foo2()
    }
    公共流程
    switch x{
        case A:
            bar1()
        case B:
            bar2()
    }
}

协作:

context和策略相互作用以选定特定的算法.然后context负责提供算法需要的数据.