亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

Python設計模式怎么實現

小億
82
2024-05-11 12:08:00
欄目: 編程語言

Python設計模式是通過編寫符合特定設計模式規范的代碼來實現的。以下是一些常見設計模式的實現方式:

  1. 單例模式:確保一個類只有一個實例,并提供全局訪問點。實現方式包括使用模塊化、使用裝飾器或者使用元類等方式。
class Singleton:
    _instance = None

    def __new__(cls):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(cls)
        return cls._instance

# 使用單例模式創建實例
instance1 = Singleton()
instance2 = Singleton()

print(instance1 is instance2)  # True
  1. 工廠模式:定義一個創建對象的接口,讓子類決定實例化哪個類。實現方式包括簡單工廠模式、工廠方法模式和抽象工廠模式。
class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Woof!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

class AnimalFactory:
    def create_animal(self, animal_type):
        if animal_type == "dog":
            return Dog()
        elif animal_type == "cat":
            return Cat()

# 使用工廠模式創建實例
factory = AnimalFactory()
dog = factory.create_animal("dog")
cat = factory.create_animal("cat")

print(dog.speak())  # "Woof!"
print(cat.speak())  # "Meow!"
  1. 觀察者模式:定義一個一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都會收到通知并自動更新。實現方式包括使用內置的Observable類和Observer接口。
from abc import ABC, abstractmethod
from typing import List

class Observer(ABC):
    @abstractmethod
    def update(self, message: str):
        pass

class Subject:
    _observers: List[Observer] = []

    def add_observer(self, observer: Observer):
        self._observers.append(observer)

    def remove_observer(self, observer: Observer):
        self._observers.remove(observer)

    def notify_observers(self, message: str):
        for observer in self._observers:
            observer.update(message)

# 使用觀察者模式
class ConcreteObserver(Observer):
    def update(self, message: str):
        print(f"Received message: {message}")

subject = Subject()
observer1 = ConcreteObserver()
observer2 = ConcreteObserver()

subject.add_observer(observer1)
subject.add_observer(observer2)

subject.notify_observers("Hello, world!")

以上是三種常見設計模式的實現方式,你可以根據需要選擇合適的設計模式來實現你的程序。

0
平陆县| 湛江市| 陈巴尔虎旗| 扶风县| 东光县| 高州市| 海阳市| 潞西市| 黑龙江省| 青神县| 大兴区| 峨眉山市| 城市| 马鞍山市| 湖北省| 永福县| 哈巴河县| 都兰县| 道真| 葵青区| 吴旗县| 长宁县| 阳谷县| 渑池县| 肇州县| 汾西县| 安岳县| 华安县| 西乌| 宝丰县| 元朗区| 潮安县| 北安市| 鹤峰县| 隆化县| 瑞金市| 仲巴县| 武强县| 闽侯县| 平远县| 班戈县|