一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式...
分类:
其他好文 时间:
2015-01-12 17:09:34
阅读次数:
249
本文主要讲述,如何应用typelist技术实现类似模板方法模式,使之容易扩充,方便使用。其中,运用了C++标准的 变长模板参数技术(C++11),模板偏特化技术,模板类型默认参数等技术。
本文主要借鉴《C++ template》和《C++设计新思维》两书。
分类:
编程语言 时间:
2015-01-08 14:49:01
阅读次数:
194
定义模板方法模式(Template Method)定义了一个操作中的算法的骨架,而将部分步骤的实现在子类中完成。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。因此,在模板方法模式的类结构图中...
分类:
编程语言 时间:
2015-01-06 11:21:15
阅读次数:
149
【设计模式】模板方法1. 将子类相同的方法抽象到父类,不同的方法以重写来实现2. 适用场景 : a. 子类间主方法的流程一样且有大量重复代码3. 代码 class TemplateMethod { public static void Test() { ...
分类:
其他好文 时间:
2015-01-05 18:10:16
阅读次数:
105
方法1: 继承DefaultDataTable,并且提供自己的html模板。 方法2: 继承DefaultDataTable,在构造函数中添加AttributeModifier,这样不用提供html模板,模板自动继承自DefaultDataTable.html 关于Odd,Even。也就...
分类:
Web程序 时间:
2015-01-05 09:41:01
阅读次数:
235
模式动机模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一。在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。在模板方法模式中,我们需要准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来让子...
分类:
其他好文 时间:
2015-01-04 13:17:02
阅读次数:
136
模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
何时应用:
1、需要一次性实现算法的不变部分,并将可变的行为留给子类实现
2、子类的共同行为应该被提取出来放到公共类中,避免代码重复
3、需要控制子类的扩展
典型应用:
1、C++ STL
2、系统底层框架:
2.1、Andro...
分类:
其他好文 时间:
2014-12-30 23:38:43
阅读次数:
220
在上一篇博客中,我已经将行为型模式分为了四类,现在就总结一下第一类——算法,用到算法的模式包含策略模式,以及模板方法。
一、概念
1、Strategy
(1)官方解释
它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
(2)类图
(3)个人理解
策略就是一种方法,做一件事情有多种方法,方...
分类:
编程语言 时间:
2014-12-30 11:49:44
阅读次数:
166
今天在看模板方法设计模式的时候 发现在接口回调的时候,匿名类里面new了一个接口 。觉得很奇怪就写了个小程序测试了一下//HibernateCallback是一个接口public void saveUser(final User user) { execute(new Hibernat...
分类:
其他好文 时间:
2014-12-26 18:08:52
阅读次数:
137