设计模式之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
  • 667

模板方法模式(python)

模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。因此模板方法使得子类可以在不改变一个算法的结构的情况下重新定义该算法的某些特定变量。 优点:把不变行为搬移到超类,去除子类中的重复...

Python设计模式(四) -- 模板方法模式

模板方法模式定义 定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤 适用场景: 事务处理的步骤具有共性,只是具体实施,根...

设计模式-模板方法模式-template-python

模板方法模式

python设计模式之模板方法模式

模板方法模式不知道你有没有注意过,我们实现某个业务功能,在不同的对象会有不同的细节实现, 以前说过策略模式, 策略模式是将逻辑封装在一个类(提到的文章中的Duck)中,然后使用委托的方式解决。 模板方...

设计模式--模板方法模式java例子

  • 2017年02月09日 16:00
  • 14KB
  • 下载

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

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

设计模式之模板方法模式

  • 2014年12月25日 12:04
  • 3KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式之python版(七)--模板方法模式
举报原因:
原因补充:

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