zoukankan      html  css  js  c++  java
  • 设计模式入门学习笔记----策略模式

    『策略模式』定义了算法族,分别封装起来,让它们之间可以互相替换,

    此模式让算法的变化独立于使用算法的客户。

    1、将会需要动态改变的代码与基本长期固定不需改变的代码区分开来

    2、少用继承,多用组合

    3、对需要动态改变的事件、行为进行的封装类称为算法族,它们之间可以用于动态的代替

    例如:

    各种duck现在要新加fly方法

    以前:直接在DUCK父类(原来有个quack方法)加入fly方法,让子类继承实现

    现在:

    父类DUCK,子类duck1,duck2,duck3………

    将子类的飞行fly方法与叫声quack方法定义为接口,具体的类分别实现fly和quack,

    DUCK父类中定义实例变量fly和quack(接口类型),

    duck1中,fly =new 一个具体实现fly的类,quack =new 一个具体实现quack的类

    对fly和quack进行具体的实现的类便是2个算法族。

    通过这个例子进行理解,这只是笔记,用于自己看完一个设计模式后的回忆与记录,比较肤浅,还可能会有错误,如果可以,谢谢指正~

  • 相关阅读:
    hdu 4460spfa用map来实现
    hdu 2579
    hdu 2845
    hdu 4462
    hdu 4557
    hdu 4639
    URAL 2078 Bowling game
    UVA
    HDU 5773 The All-purpose Zero 脑洞LIS
    Codeforces Round #368 (Div. 2) C. Pythagorean Triples 数学
  • 原文地址:https://www.cnblogs.com/pp153/p/7505828.html
Copyright © 2011-2022 走看看