python def singleton(cls): instances = {} def wrapper(*args, **kwargs): if cls not in instances: instances[cls] = cls(*args, **kwargs) return instances[cls] return wrapper @singleton class Logger: def __init__(self): self.log_file = open('log.txt', 'a') def log(self, message): self.log_file.write(message + ' ') logger1 = Logger() logger2 = Logger() print(logger1 is logger2) # Output: True python class Shape: def draw(self): pass class Rectangle(Shape): def draw(self): print("Drawing a rectangle") class Circle(Shape): def draw(self): print("Drawing a circle") class ShapeFactory: def create_shape(self, shape_type): if shape_type == "Rectangle": return Rectangle() elif shape_type == "Circle": return Circle() else: raise ValueError("Invalid shape type!") factory = ShapeFactory() rectangle = factory.create_shape("Rectangle") circle = factory.create_shape("Circle") rectangle.draw() # Output: Drawing a rectangle circle.draw() # Output: Drawing a circle python class Observer: def update(self, message): pass class Subject: def __init__(self): self.observers = [] def attach(self, observer): self.observers.append(observer) def detach(self, observer): self.observers.remove(observer) def notify(self, message): for observer in self.observers: observer.update(message) class EmailObserver(Observer): def update(self, message): print("Sending email notification:", message) class SMSObserver(Observer): def update(self, message): print("Sending SMS notification:", message) subject = Subject() email_observer = EmailObserver() sms_observer = SMSObserver() subject.attach(email_observer) subject.attach(sms_observer) subject.notify("Hello subscribers!") # Output: Sending email notification: Hello subscribers! # Sending SMS notification: Hello subscribers!


上一篇:
下一篇:
切换中文