美文网首页
模板方法|策略模式|装饰模式

模板方法|策略模式|装饰模式

作者: 万州大牛 | 来源:发表于2017-10-24 08:25 被阅读0次

模板方法

概念层次
是某个抽象对象,具有不同的具体对象,需要完成一件事情
(1)有相同的步骤,但单个步骤的实现可能不同
(2)所以完成一件事情这个行为,控制步骤顺序
(3)单个步骤行为可以抽象,让具体对象去实现

父类定义一个方法,这个方法里面调用一些抽象方法,这些抽象方法在子类去实现

父类调用抽象方法的方法,就是模板方法

策略模式

概念层次
有一些实体对象,有一个行为,可能有不同的实现
(1)那么,把这个行为隔离抽象出来,让具体行为通过组合的方式,与实体对象关联
(2)这个行为的具体实现就是策略

策略模式,模板方法,区别
(1)模板方法,是,一件事情,可能需要顺序执行几个方法,这几个方法,一些可能在抽象类已经实现,只需要在具体对象实现另一些方法就可以。
抽象类给做这件事情提供了一个模板,具体类按照模板实现就可以了。
(2)策略模式是抽象隔离一个行为,通过组合与实体对象关联。
(3)模板方法,对象之间,某个行为表现为较强的模板性质。

装饰模式

比如计算奖金,比如促销

概念层次
就是指对象的行为,多样,且,多变,且,可以任意组合。

抽象这个行为到接口。抽象装饰器对象,实现接口,且,关联接口。转发装饰对象行为,为关联接口行为。

多样,易变,任意组合,就是靠具体对象去按粒度,按概念实现。

装饰器模式,策略模式,区别
(1)装饰器是对象需要动态改变行为的实现。
(2)策略是指定行为的一种实现。
(3)比如使用a策略,就不能使用b策略,要同时包含a,b策略,就需要重新写个c策略。
(4)装饰器就是,可以先用a装饰,再用b装饰,那就轻松实现同时包含a,b的行为。
(5)所以,看上去,选择之间是互相排斥的就应该使用策略模式。
(6)选择之间是可以组合的,就应该使用装饰器模式。

装饰模式,生成子类,区别
(1)生成子类,会继承父类全部的状态行为特点。
(2)装饰模式,可以就具体功能行为状态,进行扩展,并且最重要的,这些功能行为状态,从概念层次来看,可以任意组合,和生活中的装饰就是一个意思。

相关文章

  • 设计模式目录

    观察者模式 策略模式 装饰者模式 工厂方法模式 单例模式 命令模式 适配器模式与外观模式 模板方法模式 迭代器与组...

  • 模板方法|策略模式|装饰模式

    模板方法 概念层次是某个抽象对象,具有不同的具体对象,需要完成一件事情(1)有相同的步骤,但单个步骤的实现可能不同...

  • C++笔记十一(C++设计模式)

    本周内容(1)设计模式简介(2)面向对象设计原则(3)模板方法(4)策略模式(5)观察者模式(6)装饰模式(7)桥...

  • Boolan(博览网)——C++ 设计模式(第十一周)

    目录 1. 设计模式简介 2. 面向对象设计原则 3. 模板方法 4. 策略模式 5. 观察者模式 6. 装饰模式...

  • 各种设计模式总结和对比

    模板方法模式和策略模式 1、模板方法和策略模式都有封装算法。2、策略模式是使不同算法可以相互替换,且不影响客户端应...

  • 设计模式

    策略模式 接口 模板方法模式 抽象类 代理模式 接口

  • JS 设计模式

    工厂模式 单体模式 模块模式 代理模式 职责链模式 命令模式 模板方法模式 策略模式 发布-订阅模式 中介者模式 ...

  • 常见六种设计模式.2018-08-01

    单例模式 工厂模式 策略模式 观察者模式 迭代器模式 模板方法模式 https://www.jianshu.com...

  • 设计模式--策略模式

    目录 本文的结构如下: 引言 什么是策略模式 模式的结构 典型代码 代码示例 策略模式和模板方法模式的区别 优点和...

  • 设计模式

    单例模式(饿汉式和懒汉式) 策略模式(将算法封装,不与客户端的改变而改变) 模板模式 装饰器模式 观察者模式 适配...

网友评论

      本文标题:模板方法|策略模式|装饰模式

      本文链接:https://www.haomeiwen.com/subject/nqxtpxtx.html