大发PK10APP下载_大发PK10APP官网 - 大发PK10APP下载,大发PK10APP官网是新浪网最重要的频道之一,24小时滚动报道国内、国际及社会新闻。每日编发新闻数以万计。

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

  • 时间:
  • 浏览:0

1 实例分析

Python实现工厂类相关模式

2.1 实例分析

工厂类相关的模式在Python里边只有不得劲的实现最好的土依据,大伙就直接用案例来分析。

@dataclass

class chickenWings(Snack):

@dataclass

class cheeseBurger(Burger):

2.1.5 实现工厂类

以上的Burger,Snack,Beverage,须要认为是该快餐店的产品,可能只提供了抽象最好的土依据,大伙把它们叫抽象产品类,而cheese burger等6个由抽象产品类衍生出的子类,叫作具体产品类。

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

if __name__=="__main__":

@dataclass

class coke(Beverage):

@dataclass

class burgerFactory(foodFactory):

总结

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

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

@dataclass

class Burger:

在场景中写成如下形式:

spicy_chicken_burger=simpleFoodFactory.createFood(spicyChickenBurger)

只有 ,省去了将工厂实例化的过程。类式于于 模式就叫做简单工厂模式。

还是在上述例子中,createFood最好的土依据中须要传入foodClass才须要指定生成的food实例种类,可能,将每一个细致的产品都建立对应的工厂(如cheeseBurger建立对应一个cheeseBurgerFactory),只有 ,生成食物时,foodClass也不 必指定。事实上,此时,burgerFactory也不 具体食物工厂的一层抽象。类式于于 模式,也不 抽象工厂模式。

@dataclass

class beverageFactory(foodFactory):

@dataclass

class spicyChickenBurger(Burger):

@dataclass

class chips(Snack):

2.1.3 小食生成

@dataclass

class Snack:

@dataclass

class milk(Beverage):

@dataclass

class snackFactory(foodFactory):

2.1.4 饮料生成

@dataclass

class Beverage:

2.1.6 开始了了生产

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

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

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

1 工厂类相关模式含义

工厂最好的土依据模式(英语:Factory method pattern)是一种实现了“工厂”概念的面向对象设计模式。就像一些创建型模式一样,它也是补救在不指定对象具体类型的情况下创建对象的间题。工厂最好的土依据模式的实质是“定义一个创建对象的接口,但让实现类式于于 接口的类来决定实例化哪个类。工厂最好的土依据让类的实例化推迟到子类中进行。”[1]

创建一个对象常常须要冗杂的过程,不多不适合含晒 在一个复合对象中。创建对象可能会意味少量的重复代码,可能会须要复合对象访问只有的信息,也可能提供不了足够级别的抽象,还可能并有的是复合对象概念的一累积。工厂最好的土依据模式通过定义一个单独的创建对象的最好的土依据来补救哪几种间题。由子类实现类式于于 最好的土依据来创建具体类型的对象。

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

2 工厂类相关模式优点

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

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

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

3 工厂类相关模式缺点

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

1、工厂模式相对于直接生成实例过程要冗杂一些,不多,在小项目中,须要不使用工厂模式;

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

4 工厂类相关模式应用

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

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

在通信系统中,高层通信协议会很冗杂,一齐,上层协议依赖于下层协议,只有就须要对应建立对应层级的抽象工厂,根据不同的“产品需求”去生产定制的实例。

class simpleFoodFactory:

2.1.1 背景要求

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

@dataclass

class foodFactory: