首页 > 其他 > 详细

设计模式之访问模式

时间:2020-06-15 09:04:52      阅读:38      评论:0      收藏:0      [点我收藏+]
from abc import ABCMeta, abstractmethod


# 访问模式:封装一些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作
# 三个角色:访问者、数据节点、对象结构
class DataNode(metaclass=ABCMeta):
    """数据结构类"""
    def access(self, visitor):
        """接受访问者的访问"""
        visitor.visit(self)


class Visitor(metaclass=ABCMeta):
    """访问者"""
    @abstractmethod
    def visit(self, data):
        """对数据对象的访问操作"""
        pass


class ObjectStructure:
    """数据结构的管理类,也是数据对象的容器,可遍历容器内的所有元素"""
    def __init__(self):
        self.__datas = []

    def add(self, dataElement):
        self.__datas.append(dataElement)

    def action(self, visitor):
        """进行数据访问的操作"""
        for data in self.__datas:
            data.accept(visitor)

 

设计模式之访问模式

原文:https://www.cnblogs.com/loveprogramme/p/13128512.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!