设计模式
设计模式案例:简单工厂模式、策略模式、依赖注入模式
装饰器模式
建造者模式
工厂方法模式和建造者模式 区别
工厂模式
策略模式
设计模式简述
适配器模式
开闭原则
设计模式:开篇
django 涉及了哪些设计模式
本文档使用 MrDoc 发布
-
+
首页
工厂模式
工厂模式有三种主要变体,各有其特点和使用场景: ### 1. 简单工厂模式 (Simple Factory): 特点: - 使用一个工厂类/方法集中创建对象 - 通过参数决定创建什么对象 - 所有创建逻辑集中在一个地方 示例: ``` def create_animal(name): if name == "dog": return Dog() elif name == "cat": return Cat() ``` 适用场景: - 对象的创建逻辑相对简单 - 客户端只需要知道参数即可 - 对象的创建逻辑变化不频繁 ### 2. 工厂方法模式 (Factory Method): 特点: - 定义创建对象的接口 - 让子类决定实例化哪个类 - 将类的实例化延迟到子类 示例: ``` from abc import ABC, abstractmethod # 产品接口 class Animal(ABC): @abstractmethod def speak(self): pass # 具体产品:狗 class Dog(Animal): def speak(self): return "Woof!" # 具体产品:猫 class Cat(Animal): def speak(self): return "Meow!" # 工厂接口 class AnimalFactory(ABC): @abstractmethod def create_animal(self) -> Animal: pass # 具体工厂:狗工厂 class DogFactory(AnimalFactory): def create_animal(self) -> Animal: return Dog() # 具体工厂:猫工厂 class CatFactory(AnimalFactory): def create_animal(self) -> Animal: return Cat() # 客户端 if __name__ == "__main__": # 创建狗工厂 dog_factory = DogFactory() dog = dog_factory.create_animal() print(f"Dog says: {dog.speak()}") # 创建猫工厂 cat_factory = CatFactory() cat = cat_factory.create_animal() print(f"Cat says: {cat.speak()}") ``` 适用场景: - 不知道需要创建什么对象 - 希望子类来指定创建的对象 - 需要将创建和使用解耦 ### 3. 抽象工厂模式 (Abstract Factory): 特点: - 提供一个创建一系列相关对象的接口 - 无需指定它们的具体类 - 创建一整个产品族 适用场景: - 需要创建一系列相关的对象 - 产品族之间有关联 - 产品有多个系列 ### 其他 工厂模式的优点: - 封装对象的创建过程 - 降低代码耦合度 - 提高代码的可维护性 - 符合开闭原则 使用工厂模式的时机: - 对象的创建逻辑比较复杂 - 需要根据不同条件创建不同对象 - 需要解耦对象的创建和使用 - 需要管理对象的生命周期
gaojian
2024年12月8日 18:50
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码