佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 882|回复: 0

mediator pattern

[复制链接]
发表于 19-11-2008 01:46 AM | 显示全部楼层 |阅读模式
以下是mediator pattern 的 sample (python). 更多的details可以在http://en.wikipedia.org/wiki/Mediator_pattern找寻.

class mediator(object)
    def send(self,socket,msg):
        pass
class ConcreteMediator(mediator):
    def setSocket1(self,socket):
        self.m_ConcreateSocket1= socket
   
    def setSocket2(self,socket):
        self.m_ConcreateSocket2= socket   
   
    def send(self,socket,msg):
        if (socket==self.m_ConcreateSocket1):
            self.m_ConcreateSocket2.notify(msg)
        else:
            self.m_ConcreateSocket1.notify(msg)
        
class Socket(object):
    def __init__(self,mediator):
        self.m_mediator = mediator
   
class ConcreateSocket1(Socket):
    def __init__(self,mediator):
        self.m_mediator=mediator
   
    def send(self,msg):
        self.m_mediator.send(self,msg)
   
    def notify(self,msg):
        print "S1 :receive msg from socket2 %s" %msg
class ConcreateSocket2(Socket):
    def __init__(self,mediator):
        self.m_mediator=mediator
   
    def send(self,msg):
        self.m_mediator.send(self,msg)
   
    def notify(self,msg):
        print "S2 :receive msg from socket1 %s" %msg        
        
'''
test
'''
m = ConcreteMediator()
s1 = ConcreateSocket1(m)
s2 = ConcreateSocket2(m)
m.setSocket1(s1)
m.setSocket2(s2)
s1.send("test1")
s2.send("test2")
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 22-12-2025 06:32 PM , Processed in 0.335225 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表