中介者模式

2022-07-22 09:27:11 字數 1576 閱讀 1880

模式定義:用乙個中介物件來封裝一系列的物件互動,中介者使各物件不需要顯式地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。

模式結構:

例項:聊天室,聊天成員

感覺有點拗口的地方,需要聊天室加入所有成員,成員也需要傳入聊天室例項。

from abc import abcmeta, abstractmethod

class mediator(metaclass=abcmeta):

"""抽象中介

聊天室"""

def __init__(self):

self._members =

def register_member(self,member):

@abstractmethod

def operation(self,name,msg):

"""具體操作"""

class chatroom(mediator):

"""具體中介

聊天室"""

def operation(self,name,msg):

for i in self._members:

i.get_msg(name,msg)

class colleague(metaclass=abcmeta):

"""抽象同事

聊天同事

"""def __init__(self,name):

self._name = name

self._mediator = none

def set_mediator(self,mediatorobj):

self._mediator = mediatorobj

@abstractmethod

def send_msg(self,msg):

""""""

@abstractmethod

def get_msg(self,name,msg):

""""""

class chatmember(colleague):

"""具體同事

聊天成員

"""def send_msg(self,msg):

""""""

self._mediator.operation(self._name,msg)

def get_msg(self,name,msg):

""""""

print("%s收到chatroom[%s]的message[%s]"%(self._name,name,msg))

if __name__ == "__main__":

chatroom = chatroom()

memb1 = chatmember("bob")

memb2 = chatmember("john")

chatroom.register_member(memb1)

chatroom.register_member(memb2)

memb1.set_mediator(chatroom)

memb2.set_mediator(chatroom)

memb1.send_msg("hello world")

中介者模式

1.中間 類 namespace intermediarypattern 成員物件需要知道是哪個中介者在通知它事情 public abstract class member 各成員間要傳送訊息 public abstract void send string msg 這個方法其實是具體實施發訊息的 ...

中介者模式

中介者模式就是在物件之間的關係很複雜時用,名如其人,就像租房的黑中介一樣,如果每個房東都拿著很多租房者的資訊很麻煩,每個租房者都要拿著很多房東的資訊也麻煩,所以需要乙個中介來拿著這些資訊,租房者只需要發出租房的請求,中介會給你介紹合適的房東,房東只需要提交房屋資料就等著中介的人帶著訪客看房拿錢就行了...

中介者模式

中介者模式 mediator pattern 1 抽象中介者 mediator 角色 抽象中介者角色定義統一的介面用於各同事角色之間的通訊。具體中介者 concrete mediator 角色 具體中介者角色通過協調各同事角色實現協作行為,因此它必須依賴於各個同事角色。同事 colleague 角色...