关闭

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

2267人阅读 评论(0) 收藏 举报

模板方法模式:

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

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

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1496466次
    • 积分:11464
    • 等级:
    • 排名:第1439名
    • 原创:161篇
    • 转载:28篇
    • 译文:1篇
    • 评论:155条
    文章分类
    最新评论