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

  • 时间:
  • 浏览:1
  • 来源:uu快3APP_uu快3官方网址

2.1.1 背景要求

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

@dataclass

class cheeseBurger(Burger):

2.1.6 开始英文英文生产

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

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

@dataclass

class snackFactory(foodFactory):

@dataclass

class foodFactory:

@dataclass

class beverageFactory(foodFactory):

1 实例分析

Python实现工厂类相关模式

2.1 实例分析

工厂类相关的模式在Python中间没有 特别的实现办法,朋友就直接用案例来分析。

@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

if __name__=="__main__":

@dataclass

class burgerFactory(foodFactory):

2.1.4 饮料生成

@dataclass

class Beverage:

@dataclass

class chickenWings(Snack):

class simpleFoodFactory:

@dataclass

class coke(Beverage):

2.1.3 小食生成

@dataclass

class Snack:

@dataclass

class chips(Snack):

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

@dataclass

class Burger:

1 工厂类相关模式含义

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

创建有另一一两个 对象常常都要比较复杂的过程,什么都有不适合富含在有另一一两个 复合对象中。创建对象不可能 会因为多量的重复代码,不可能 会都要复合对象访问不能的信息,什么都可能 提供不了足够级别的抽象,还不可能 并都有复合对象概念的一次要。工厂办法模式通过定义有另一一两个 单独的创建对象的办法来解决有有哪些难题。由子类实现有一种办法来创建具体类型的对象。

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

2 工厂类相关模式优点

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

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

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

3 工厂类相关模式缺点

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

1、工厂模式相对于直接生成实例过程要比较复杂许多,什么都有,在小项目中,都要不使用工厂模式;

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

4 工厂类相关模式应用

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

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

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

@dataclass

class spicyChickenBurger(Burger):

在场景中写成如下形式:

spicy_chicken_burger=simpleFoodFactory.createFood(spicyChickenBurger)

另有另一一两个 ,省去了将工厂实例化的过程。有一种模式就叫做简单工厂模式。

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

2.1.5 实现工厂类

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

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

猜你喜欢

电脑上的鬼泣4,但丁的百宝箱怎么使用阿.

首先,它不叫但丁的百宝箱,它的名字叫做——潘多拉。潘多拉几只厉害打招式,多数要在枪神模式下使用。鬼泣4顶端的但丁不还都可以 在任何地方随意转换风格。按大键盘的1、2、3、4就

2020-02-24

鬼泣4中潘多拉魔盒不用手柄,键盘的出招表谢谢了,大神帮忙啊

展开全版潘多拉的确要用枪神模式~具体出招锁定+前+风格键:是把潘多拉当做飞镖扔出去,老会 按住风格键飞镖会等灾恶耗尽才回来~锁定+后+风格键:直接释放灾恶,但是打开盒子照

2020-02-24

2019阿里云服务器双11活动1折起购,现在可以购买啦!

一年一度的双11大促就要现在开始英语 英语 了,双11并不局限11月11日,从现在就还须要先参与了。先领券再购买云产品》》(不限新老用户)阿里云双11优惠主会场直达地址》》a

2020-02-24

AutoScaling 通过lifecycleHook自动添加Redis白名单

模板:OOS通过模板来定义具体的运维动作。OOS为用户提供了大量的OperationOrchestrationService,简称OOS,是全面、免费的云上自动化运维平台,提供

2020-02-24

《鬼泣》的背景故事 要详细i

有相关的12集动画片,建议看看。传说,在30000年前,魔界与人间爆发了一场跨次元的战争。而就在这时,一位原先 是魔界的剑士斯巴达,为了守护人类挺身而出,以一己之力,将魔界帝

2020-02-23