Python实现观察者模式

# -*- coding: utf-8 -*-
#观察者
class Xiaoming():
      def save(self):
            print('小明:我来救你了!')
      def com(self):
            print('小明:我来陪你!')
#观察者
class Xiaogang():
      def save(self):
            print('小刚:你走开让我来救她!')
      def com(self):
            print('小刚:你走开让我来陪她!')
#被观察者
class Xiaohong():
      xiaoming=Xiaoming
      xiaogang=Xiaogang
      def __init__(self,xiaomingobj,xiaogangobj):
            self.xiaoming=xiaomingobj
            self.xiaogang=xiaogangobj
      def call_help(self):
            print('小红:救命啊!')
            self.xiaoming.save()
            self.xiaogang.save()
      def call_com(self):
            print('小红:谁陪我逛街?')
            self.xiaoming.com()
            self.xiaogang.com()
#入口
class Run():
      xiaohong=Xiaohong
      def __init__(self,xiaohongobj):
            self.xiaohong=xiaohongobj
      def runhelp (self):
            self.xiaohong.call_help()
      def runcom (self):
            self.xiaohong.call_com()
#测试
if __name__== '__main__':
      m=Xiaoming()
      g=Xiaogang()
      h=Xiaohong(m,g)    
      run=Run(h)
      run.runhelp()
      print('-------')
      run.runcom()

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值