avatar

刘刚刚的blog

采菊东篱下,悠然见南山🦥

  • 首页
  • 大模型应用
  • 常用软件/工具
  • Halo
  • 关于
Home HeadFirst 设计模式--简单工厂
文章

HeadFirst 设计模式--简单工厂

Posted 2022-11-6 Updated 2024-09- 27
By Administrator
2~3 min read

简单工厂更像一种编程习惯,而不是设计模式。


三种简单工厂、工厂模式、抽象工厂模式

简单工厂

简单工厂更像一种编程习惯,而不是设计模式。

简单工厂通过传入不同的参数,来生成不同的类。

class CheesePizza:
    pass


class ClamPizza:
    pass


class SimpleFactory:
    def create_pizza(self, pizza_type):
        res = None
        if pizza_type == "cheese":
            res = CheesePizza()
        if pizza_type == "clam":
            res = ClamPizza()
        return res


class PizzaStore:
    pizza_factory = None

    def __init__(self, pizza_factory):
        self.pizza_factory = pizza_factory

    def order_pizza(self, pizza_type):
        pizza = self.pizza_factory.create_pizza(pizza_type)
        pizza.prepare()
        pizza.bake()
        pizza.cut()
        pizza.box()
        return pizza

tip:

可以将工厂类中生成对象的方法写成静态方法,这样的写法又称为静态工厂

好处:

  1. 当需要改动生成的对象时,在工厂类中改动即可,不需要改动其他逻辑。

  2. 可以方便其他类使用工厂类生成的对象(提高的代码的可复用性)

Head First设计模式
设计模式
License:  CC BY 4.0
Share

Further Reading

Dec 29, 2022

HeadFirst 设计模式--命令模式

命令模式通过封装调用把方法封装起来。

Dec 18, 2022

HeadFirst 设计模式--外观模式(Facade Pattern)

外观模式将一个或者数个类复杂的一切都隐藏在背后,只露出一个干净的外观

Dec 14, 2022

HeadFirst 设计模式--适配器模式(Adapter Design Pattern)

适配器模式将一个接口转化为另外一个接口。

OLDER

django开发备忘

NEWER

HeadFirst 设计模式--抽象工厂

Recently Updated

  • 文本切分-语义分割(Semantic Chunking)
  • dify 并发配置优化
  • Typing
  • 大模型返回中json_schema与json_mode的区别
  • Async

Trending Tags

Halo 运维 postgresql 设计模式 linux就该这么学 nas rag odoo python 文本切分

Contents

©2025 刘刚刚的blog. Some rights reserved.

Using the Halo theme Chirpy