• 模板方法模式


    一、内容

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    二、角色

    • 抽象类:定义抽象的原子操作(钩子操作);实现一个模板方法的骨架
    • 具体类:实现原子操作

    三、适用场景

    • 一次性实现一个算法的不变的部分
    • 各个子类中的公共行为应该被提取出来并集中到一个公共父类中以避免代码重复
    • 控制子类扩展

    四、示例代码

    from abc import ABCMeta, abstractmethod
    
    
    class IOHandler(metaclass=ABCMeta):
        @abstractmethod
        def open(self, name):
            pass
        @abstractmethod
        def deal(self, change):
            pass
        @abstractmethod
        def close(self):
            pass
    
        def process(self, name, change):
            '''模板,就相当于是一个空盒子,可以往里面添加自己需要的功能。让这个函数去执行'''
            self.open(name)
            self.deal(change)
            self.close()
    
    
    class FileHandler(IOHandler):
        def open(self, name):
            print('打开文件')
    
        def deal(self, change):
            print('操作文件')
    
        def close(self):
            print('关闭文件')
    
    obj = FileHandler()
    obj.process('abc.txt','')
  • 相关阅读:
    Python 函数知识点
    面向对象相关
    判断arg参数是否是可以被调用的
    利用U盘安装CentOS7系统
    简单模仿OpenGL中的栈的作用
    温故而知新我再一次学习库
    关于帧缓存的总结
    OGRE的相关工具和库
    OpenGL在Qt界面下的应用(helloworld)
    OpenGL加载Cg程序
  • 原文地址:https://www.cnblogs.com/morgana/p/8496318.html
Copyright © 2020-2023  润新知