深度解密Python工厂类相关模式

  • 时间:
  • 浏览:0
  • 来源:大发彩神iphone版—电脑版大发彩神8

总结

工厂模式也分为简单工厂模式和抽象工厂模式,像下面曾经

@dataclass

class burgerFactory(foodFactory):

2.1.2 主餐的生成(仅以四种 汉堡为例)

@dataclass

class Burger:

1 实例分析

Python实现工厂类相关模式

2.1 实例分析

工厂类相关的模式在Python中间如此 有点痛 的实现办法 ,亲戚亲戚当我们都都 就直接用案例来分析。

@dataclass

class cheeseBurger(Burger):

2.1.3 小食生成

@dataclass

class Snack:

1 工厂类相关模式含义

工厂办法 模式(英语:Factory method pattern)是四种 实现了“工厂”概念的面向对象设计模式。就像一点创建型模式一样,它也是解决在不指定对象具体类型的情况表下创建对象的问题图片图片。工厂办法 模式的实质是“定义一个多 创建对象的接口,但让实现这些 接口的类来决定实例化哪个类。工厂办法 让类的实例化推迟到子类中进行。”[1]

创建一个多 对象常常时要僵化 的过程,什么都不适合中含在一个多 复合对象中。创建对象你会会原困一定量的重复代码,你会会时要复合对象访问如此的信息,也你会提供不了足够级别的抽象,还你会并全是 复合对象概念的一每项。工厂办法 模式通过定义一个多 单独的创建对象的办法 来解决哪几个问题图片图片。由子类实现这些 办法 来创建具体类型的对象。

对象创建中的一点过程包括决定创建哪个对象、管理对象的生命周期,以及管理特定对象的创建和销毁的概念。

2 工厂类相关模式优点

工厂模式、抽象工厂模式的优点:

1、工厂模式巨有非常好的封装性,代码底部形态清晰;在抽象工厂模式中,其底部形态还都都能能随着时要进行更深你会更浅的抽象层级调整,非常灵活;

2、屏蔽产品类,使产品的被使用业务场景和产品的功能细节都都能能分而开发进行,是比较典型的解耦框架。

3 工厂类相关模式缺点

工厂模式、抽象工厂模式的缺点:

1、工厂模式相对于直接生成实例过程要僵化 一点,什么都,在小项目中,都都能能不使用工厂模式;

2、抽象工厂模式中,产品类的扩展比较麻烦。毕竟,每一个多 工厂对应每一类产品,产品扩展,就原困着相应的抽象工厂也要扩展。

4 工厂类相关模式应用

工厂模式、抽象工厂模式的使用场景:

1、当系统实例要求比较灵活和可扩展时,都都能能考虑工厂模式你会抽象工厂模式实现。比如,

在通信系统中,高层通信协议会很僵化 ,并肩,上层协议依赖于下层协议,如此 就都都能能对应建立对应层级的抽象工厂,根据不同的“产品需求”去生产定制的实例。

if __name__=="__main__":

@dataclass

class chickenWings(Snack):

class simpleFoodFactory:

@dataclass

class snackFactory(foodFactory):

在场景中写成如下形式:

spicy_chicken_burger=simpleFoodFactory.createFood(spicyChickenBurger)

曾经,省去了将工厂实例化的过程。这些 模式就叫做简单工厂模式。

还是在上述例子中,createFood办法 中时要传入foodClass才都都能能指定生成的food实例种类,你会,将每一个多 细致的产品都建立对应的工厂(如cheeseBurger建立对应一个多 cheeseBurgerFactory),曾经,生成食物时,foodClass就让必指定。事实上,此时,burgerFactory就让具体食物工厂的一层抽象。这些 模式,就让抽象工厂模式。

2.1.5 实现工厂类

以上的Burger,Snack,Beverage,都都都能能认为是该快餐店的产品,你会只提供了抽象办法 ,亲戚亲戚当我们都都 把它们叫抽象产品类,而cheese burger等6个由抽象产品类衍生出的子类,叫作具体产品类。

接下来,“工厂”就要出先 了。

@dataclass

class coke(Beverage):

@dataclass

class foodFactory:

2.1.4 饮料生成

@dataclass

class Beverage:

@dataclass

class beverageFactory(foodFactory):

@dataclass

class milk(Beverage):

BURGER factory produce a instance.

cheese burger 10.0

SNACK factory produce a instance.

chicken wings 12.0

BEVERAGE factory produce a instance.

coke 4.0

@dataclass

class spicyChickenBurger(Burger):

2.1.1 背景要求

假设亲戚亲戚当我们都都 现在时要开发一个多 快餐点餐系统,想必亲戚亲戚当我们都都 一定见过之类于于麦当劳自助点餐台一类的点餐系统吧。在一个多 大的触摸显示屏上,有三类都都能能选择的上餐品:汉堡等主餐、小食、饮料。当亲戚亲戚当我们都都 选择好另一方时要的食物,支付完成后,订单就生成了。下面,亲戚亲戚当我们都都 用今天的主角--工厂模式--来生成哪几个食物的逻辑主体。

2.1.6 刚开始生产

同样,foodFactory为抽象的工厂类,而burgerFactory,snackFactory,beverageFactory为具体的工厂类。

在业务场景中,工厂模式是怎么“生产”产品的呢?

@dataclass

class chips(Snack):