• 设计模式 策略-Strategy,装饰-Decorator,观察者-Observer


    重温了Head First 3个设计模式。提炼一下思想,笔记如下。

    策略-Strategy

    当一个类或类族中重复实现某些同类的方法(behavior)时,考虑使用策略模式。

    该模式是将Behavior或算法设计成接口。具体不同的Behavior实现该接口。原来的类中含有算法接口的成员。通过set或constructor设定Behavior或算法。

    结合Head First例子记忆。将Duck的Fly,Swim,Quack,Display等都抽象成接口。然后不同的算法实现各自的接口。在Duck中包含有IFlyBehavior,ISwimBehavior等的member。

    主要体现了Program to interface, not implement. 即针对接口变成而非针对实现。

    装饰-Decorator

    主要特征是反复调用类族中相同的方法。设计思路,装饰者包含一个父类组件member。当调用重复的方法时,先调用组件的方法。通常在装饰件构造时传入组件。

    结合Head First例子记忆。饮品是咖啡和调料的父类。调料中有一个饮品成员。在构造时传入。在计算cost时,cost = 饮品cost() + 调料cost()

    观察者-Observer

    当多个类要根据某一变动而作出反应时,考虑引入该模式。主题Subject中有一个观察者队列,包含register,remove,notify方法。观察者有一个主题成员。在观察者的构造函数中传入主题。并进行注册。在Subject有变化时,notify方法中遍历Observer队列,调用Observer的update方法。

    结合Head Frist例子。Subject是WeatherData。不同的显示器是Observer。当WeatherData变化时,遍历Oberver队列,调用update方法。

     

    参考以下复习UML中的关联关系

    http://blog.csdn.net/sfdev/article/details/3906243

  • 相关阅读:
    !!“理都懂”为什么“然并卵”?
    启明创投甘剑平:破解独角兽公司的基因密码
    任正非:华为3年前应该快垮了
    C语言 · 8皇后问题改编
    C语言 · 数的划分
    C语言 · 8皇后问题
    C语言 · 数字黑洞
    C语言 · FBI树
    C语言 · 超级玛丽
    C语言 · 数的划分
  • 原文地址:https://www.cnblogs.com/JackMa/p/5296791.html
Copyright © 2020-2023  润新知