one 策略模式 strategy

--读书笔记

定义
策略模式--定义算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(看不懂的话,往下,有人话版/我自己的解释)
相关原则
> 1,变化单独封装  
  2,多用组合,少用继承(Go中只有组合)
  3,**针对接口编程,不针对实现编程**
    >> 意思大概是,在结构部分的代码里,不要出现实例化的东西?(未必对)
    
> 设计系统的时候,首先要熟悉已有的设计模式,最终要能够熟练运用;如果有时候找不到设计模式,则采用OO的原则。**要诀:随时想到系统以后可能需要的变化以及应该变化的原则**

类图

策略模式

名白
> 设计模式可以把个人的思考层次提高到模式层面,脱离琐碎的对象。

> 策略模式,把类的行为封装为 一个一个的,独立的,可替换的算法,放到其他类里。  
    >> 具体:用内部接口,替换内部类,加一个setter方法,使该属性可替换,而放方法的类去实现这个接口(上转型)。再美其名曰:运行时多态。
    
> 如面试被问: 接口的作用?
    >> 可从四个方面回答:  
        1,抽象相关的设计时用
        2,实现多态,运行时的动态
        3,实现弹性的设计。
        
        4,多人开发时的 约定和标准。
        
> 深入的探究下:所谓的用接口实现多继承的,是怎么搞的?

> 叫法升级:  行为-->算法。
原文地址:https://www.cnblogs.com/mingbai/p/strategy.html