首页 > 编程语言 >Python: Mediator Pattern

Python: Mediator Pattern

时间:2022-10-24 06:55:14浏览次数:44  
标签:__ name Mediator Python Pattern self user msg def

DuMediator.py

# 中介者模式  Mediator Pattern
# ParticipantReference:
import sys

'''
class User(object):
    def __init__(self, med, name):
        self.mediator = med
        self.name = name
        #self.send=send()
        #self.receive=receive()

    @abstractmethod
    def send(self, msg):
        pass

    @abstractmethod
    def receive(self, msg):
        pass
    def __str__(self):
       return self.name

# The Mediator:
class ChatMediator(object):
    def __init__(self):
        self.users = []

    def add_user(self, user):
        self.users.append(user)

    def send_message(self, msg, user):
        for u in self.users:
            if u != user:
                u.receive(msg)
# Participant
class ConcreteUser(User):
    def send(self, msg):
        print(self.name + ": 发送消息: " + msg)
        self.mediator.send_message(msg, self)

    def receive(self, msg):
        print(self.name + ": 收到的消息: " + msg)
        
 '''
# geovindu: two
class ChatRoom(object):
    '''Mediator class.'''
    def __init__(self):
        self.users = []

    def add_user(self, user):
        self.users.append(user)

    def displayMessage(self, user, message):
        print("[{} 说]: {}".format(user, message))


class User(object):
    '''A class whose instances want to interact with each other.'''
    def __init__(self, name):
        self.name = name
        self.chatRoom = ChatRoom()


    def sendMessage(self, message):
        self.chatRoom.displayMessage(self, message)


    def __str__(self):
        return self.name

  

main.py 调用

# 中介者模式  Mediator Pattern

userDu = DuMediator.User("GeovinDu")
userDu2 = DuMediator.User("geovindu")
userDu3 = DuMediator.User("涂聚文")
userDu4 = DuMediator.User("geovin")
userDu.sendMessage("你好,见到你真高兴.")
userDu2.sendMessage("你好,见到你真高兴.")
userDu3.sendMessage("你好,见到你真高兴.")
userDu4.sendMessage("你好,见到你真高兴.")
print("\n")

  

输出:

[GeovinDu 说]: 你好,见到你真高兴.
[geovindu 说]: 你好,见到你真高兴.
[涂聚文 说]: 你好,见到你真高兴.
[geovin 说]: 你好,见到你真高兴.

  

标签:__,name,Mediator,Python,Pattern,self,user,msg,def
From: https://www.cnblogs.com/geovindu/p/16820270.html

相关文章

  • 代码卡(python)
    1.打印 print(1024)2.注释 #thisisthefirstcode3.字符串 print("helloworld")4.赋值 Name="Tony"program="夜曲编程"......
  • Python: Iterator Pattern
    DuIterator.py#迭代器模式IteratorPattern#DoublyLinkedListclassNode(object):def__init__(self,value,nextNode,prevNode):self.value=......
  • Python入门练习(Question4)
    年份天数题目输入某年某月某日,判断这一天是这一年的第几天?特殊情况,闰年时需考虑二月多加一天解答year=int(input("inputyear:"))month=int(input("inputmont......
  • python中format的详解
    format是字符串内嵌的一个方法,用于格式化字符串。以大括号{}来标明被替换的字符串。它通过{}和:来代替%。1、基本用法1.按照{}的顺序依次匹配括号中的值s="{}isa{}......
  • Python入门练习(Question3)
    完全平方数题目一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?解答defsolution3():n=10whileTrue:n+=1......
  • 十分钟带你搞懂Python获取网页信息
    Python爬虫的用处就不需要我多说了吧,今天就来带大家十分钟快速学会Python是如何爬取网页信息的,当然大家在爬取目标网页内容之前一定要遵守该网页的爬虫规则,以免带来不必要的......
  • python学习第四周总结
    异常常见类型异常处理语法结构异常补充处理异常处理实战应用生成器对象自定义生成器range()功能yield冷门用法生成器表达式模块简介模块的分......
  • hands-on design patterns with c++ 电子书 pdf
    作者:FedorGPikus出版社:PacktPublishing-ebooksAccount副标题:MastertheDesignPatternstocreaterobust,reusableandeasilymaintainableapps 链接:h......
  • python控制台颜色输出设置
    python控制台颜色输出设置控制台输出内容的颜色有前景色与背景色控制台的展示效果有限,并不能像前端一样炫酷,只能做一些简单的设置原理python终端的字符颜色是用转义序......
  • 写给小朋友的Python课
    目录 基本常识什么是Python?python是众多编程语言中的一种。为什么python会在这个时代流行?python简单、易学、表示方式更像人类的表示方式、符合人类的思维方式;另外,它......