设计模式之python版(七)--模板方法模式

原创 2012年05月14日 13:24:42

模板方法模式:

应用特性:重复做相同逻辑的事情,但是具体细节不同的场景

结构特性:相同逻辑抽取至父类,具体细节留置子类。可以说是对逻辑的抽象

UML:

#!/usr/bin/env python  
#encoding: utf-8  

class template:
    def __init__(self):
        pass
    
    def logic(self):
        print 'do something before ....'
        print self.do_something_now()
        print 'do something after ....'
        
    def do_something_now(self):
        return None      
        
class apply_temp1(template):
    def __init__(self):
        pass
    
    def do_something_now(self):
        return 'apply 1'  
    
class apply_temp2(template):
    def __init__(self):
        pass
    
    def do_something_now(self):
        return 'apply 2'  

          
if '__main__' == __name__:  
    obj1 = apply_temp1()
    obj2 = apply_temp2()
    obj1.logic()
    obj2.logic()
    print obj1.__class__
    print obj2.__class__

结果:

do something before ....
apply 1
do something after ....
do something before ....
apply 2
do something after ....
__main__.apply_temp1
__main__.apply_temp2

Python设计模式(二十三)【模板方法模式】

过去属于死神,现在属于自己。""" 模板方法模式 """ ingredients = "垃圾邮件 鸡蛋 苹果" line = '-' * 10# 骨架 def iter_elements(getter...
  • WuLex
  • WuLex
  • 2016年08月30日 17:45
  • 740

Java设计模式(四) 之 模板方法模式

源码均以JDK1.8作为参考1.定义: 定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的机构即可重定义该算法的某些特定步骤。2.解析: 通用类图:...
  • securitit
  • securitit
  • 2015年08月04日 09:16
  • 495

设计模式之禅——模板方法模式&钩子方法

**模**板方法模式的定义:定义一个操作的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的框架即可重定义该算法的某些特定步骤。例子:做一个简单的悍马车的模型见UML图 一个抽象悍马...
  • TyroneRenekton
  • TyroneRenekton
  • 2016年08月21日 12:15
  • 4647

设计模式之(七)-----模板方法模式

我先设计个类图:   非常简单的实现,你要悍马模型,我就给你悍马模型,先写个抽象类,然后两个不同型号的模型实现类,那我们把这个程序实现出来: HummerModel抽象类的程序清单如下: ...
  • fangchao3652
  • fangchao3652
  • 2015年02月10日 16:21
  • 450

大话设计模式—模板方法模式

在模板方法模式(TemplateMethod Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于...
  • lmb55
  • lmb55
  • 2016年03月26日 13:47
  • 1175

【设计模式】——原型模式VS模板方法模式

不知道何种原因总是把原型模式和模板方法模式搞混,着实很苦恼啊!不知道大家是否有同样的困扰,有的话治疗,没有的话预防啊。故该文章进行详细对比学习! 原型模式     所谓的原型模式:用原型实例指定创建对...
  • jiadajing267
  • jiadajing267
  • 2015年11月02日 19:47
  • 1017

设计模式初探-模板方法模式

模板方法模式(TEMPLATE METHOD),用于定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,属...
  • qbg19881206
  • qbg19881206
  • 2014年02月16日 15:40
  • 1474

【java设计模式】之 模板方法(Template Method)模式

1. 模板方法的一个实例         这一节主要来学习一下设计模式中的模板方法模式。我们先来看一个例子:假如现在老板让你做一个汽车的模型,要求只要完成基本功能即可,不考虑扩展性,那你会怎么做呢?...
  • eson_15
  • eson_15
  • 2016年05月06日 08:57
  • 4055

C#设计模式——模板方法模式

模板方法模式: 应用广泛的模式 一、意图: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法结构即可重定义该算法的某些特定步骤。 二、作用: ...
  • hongwei15732623364
  • hongwei15732623364
  • 2016年02月13日 17:01
  • 683

Java设计模式之模板方法模式(Template Method)

本文属于23种设计模式系列,介绍的是模板方法模式。
  • jason0539
  • jason0539
  • 2015年04月15日 08:37
  • 28377
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之python版(七)--模板方法模式
举报原因:
原因补充:

(最多只允许输入30个字)