当前位置:网站首页 > Java教程 > 正文

java访问模式教程



Python 代码:

 # Visitor Pattern with Python Code from abc import abstractmethod,ABCMeta # 定义一个表示元素(Element)的接口 class ComputerPart(metaclass=ABCMeta): @abstractmethod def accept(self, inComputerPartVisitor): pass #创建阔爱站了ComputerPart的实体类 class Keyboard(ComputerPart): def accept(self, inComputerPartVisitor): inComputerPartVisitor.visitKeyboard(self) class Monitor(ComputerPart): def accept(self, inComputerPartVisitor): inComputerPartVisitor.visitMonitor(self) class Mouse(ComputerPart): def accept(self, inComputerPartVisitor): inComputerPartVisitor.visitMouse(self) class Computer(ComputerPart): _parts = [] def __init__(self): self._parts.append(Mouse()) self._parts.append(Keyboard()) self._parts.append(Monitor()) def accept(self, inComputerPartVisitor): for aPart in self._parts : aPart.accept(inComputerPartVisitor) inComputerPartVisitor.visitComputer(self) # 定义一个表示访问者的接口 class ComputerPartVisitor(metaclass=ABCMeta): @abstractmethod def visitComputer(self,inComputer): pass @abstractmethod def visitMouse(self,inMouse): pass @abstractmethod def visitKeyboard(self,inKeyboard): pass @abstractmethod def visitMonitor(self,inMonitor): pass # 实现访问者接口的实体类 class ComputerPartDisplayVisitor(ComputerPartVisitor): def visitComputer(self,inComputer): print("Displaying {0}. Called in {1}".format(inComputer.__class__.__name__,self.__class__.__name__)) def visitMouse(self,inMouse): print("Displaying {0}. Called in {1}".format(inMouse.__class__.__name__,self.__class__.__name__)) def visitKeyboard(self,inKeyboard): print("Displaying {0}. Called in {1}".format(inKeyboard.__class__.__name__,self.__class__.__name__)) def visitMonitor(self,inMonitor): print("Displaying {0}. Called in {1}".format(inMonitor.__class__.__name__,self.__class__.__name__)) # 调用输出 if __name__ == '__main__': aComputer = Computer() aComputer.accept(ComputerPartDisplayVisitor())

  • 上一篇: java joinpoint教程
  • 下一篇: java你好世界教程
  • 版权声明


    相关文章:

  • java joinpoint教程2024-12-22 09:02:02
  • java矩阵相乘教程2024-12-22 09:02:02
  • java安装教程win102024-12-22 09:02:02
  • java整数类教程视频2024-12-22 09:02:02
  • java全实例教程2024-12-22 09:02:02
  • java你好世界教程2024-12-22 09:02:02
  • selenium2.0 java教程2024-12-22 09:02:02
  • 最全的java教程网站2024-12-22 09:02:02
  • java程序案例教程2024-12-22 09:02:02
  • java学习菜鸟教程2024-12-22 09:02:02