# 打印机案例, 办公室里多人使用同一打印机
class Staff(object):
"""员工类"""
def user_printer(self, info, pr):
"""
使用打印机的方法
:param info:需要打印的信息
:param pr: 打印机对象
:return: None
"""
pr.add_task(info)
class Manager(Staff):
"""经理类"""
pass
class Printer(object):
"""打印机类"""
# 单例对象
__instance = None
# 打印队列
__list_print_queue = list()
def __new__(cls, *args, **kwargs):
"""将打印机类 设计成单例模式"""
if cls.__instance is None:
# 调用object类生成对象的方法
cls.__instance = object.__new__(Printer)
return cls.__instance
def add_task(self, info):
"""
添加打印任务到 打印队列中
:param info: 需要打印的信息
:return: None
"""
Printer.__list_print_queue.append(info)
def print_task(self):
"""模拟打印"""
print(Printer.__list_print_queue)
def main():
"""主程序"""
# 经理使用打印机
manager1 = Manager()
pr1 = Printer()
manager1.user_printer("hello world", pr1)
# 员工1 使用打印机
worker1 = Staff()
pr2 = Printer()
worker1.user_printer("worker1 use printer", pr2)
# 员工2 使用打印机
worker2 = Staff()
pr3 = Printer()
worker2.user_printer("i'm worker2, i'm use printer", pr3)
# 程序员查看打印机 打印情况
pr4 = Printer()
pr4.print_task()
if __name__ == '__main__':
main()
打印机案例, 办公室里多人使用同一打印机
猜你喜欢
转载自blog.csdn.net/u010684603/article/details/107580827
今日推荐
周排行