-------------------由代码而又回归思想-------------------
核心思想:
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
针对接口编程,而不是针对实现编程。针对超类编程。利用多态。
策略模式:就像公司对外招标一样,给出政策,然后给其他公司去投标。
策略模式包含三个角色:
招标公司在解决某个问题时可以采用多种策略,在招标公司维护一个对抽象策略类的引用实例;
抽象策略类(标书,你要干的事儿)为所支持的算法声明了抽象方法,是所有策略类的父类;
具体策略类(竞标公司)实现了在抽象策略类中定义的算法。
简单的概括:
招标公司有个项目,自己不想干得对外招标。
标书呢写好了,等着竞标公司按标书一一实现,实现标书。
谈拢了,那好就你这公司了,实例化竞标公司。
公司对外生成,项目自己做的,具体自己清楚。这就是招标的猫腻,一种策略
设计模式归根到底难,或者简单在于自己理解
模式代码天天见,具体说的话又说不好,就说明没有用最简单明了的方法总结。
策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。