# -*- coding: utf-8 -*- """ Created on Wed Mar 28 18:50:47 2018 @author: mz """ #observer class Boss(object): def __init__(self): self.obj = []; def Attach(self, employee): self.obj.append(employee) def In(self): print("Boss in->") self.Notify(0); def Out(self): print("Boss out->") self.Notify(1); def Notify(self, tag): if 0 == tag: for o in self.obj: o.Work() else: for o in self.obj: o.Relax() #subject class Employee(object): def Work(self): pass def Relax(self): pass class Manager(Employee): def Work(self): print("Manger: open PPT") def Relax(self): print("Manager: check stock") class Engineer(Employee): def Work(self): print("Engineer: coding") def Relax(self): print("Engineer: chat") if "__main__" == __name__: manager = Manager() employee = Engineer() boss = Boss() boss.Attach(manager) boss.Attach(employee) boss.In() print("\r") boss.Out()
运行结果:
Boss in-> Manger: open PPT Engineer: coding Boss out-> Manager: check stock Engineer: chat