#yyds干货盘点#python抽象工厂模式

网友投稿 335 2022-08-23


#yyds干货盘点#python抽象工厂模式

当希望成组替换生成的产品的时候,可以考虑使用抽象工厂模式,抽象工厂模式类图如下图所示

抽象工厂类AbstractFactory用来定义工厂类的接口。在Python语言中这个类并不是必须定义的,只要在需要实现共通功能的时候定义即可,这样可以提高代码的复用性。

具象工厂类(ConcreteFactory1或者ConcreteFactory2)负责根据扩展的需求构建一组实际的产品。为了明确类的职责,类名可以将Factory作为后缀。

和抽象工厂类的情况类似,Python语言中的抽象产品类ProductA、ProductB也不是必须定义的,只要每个工厂方法生成的产品类支持相同的操作即可(Python语言称这种情况为Protocol),这一点和模板有些类似。

具象产品类(ConcreteProductA1、ConcreteProductA2、ConcreteProductB1、ConcreteProductB2)遵从抽象产品类的约定并实现自己的功能。PyExecutor中和具象产品类相对应的是通用功能模块逻辑和小家电控制逻辑中的各种功能模块及连接线。

示例代码

# MiniBody类和MiniWheel类class MiniBody: def __init__(self): pass class MiniWhell: def __init__(self): pass# HeavyBody类和BigWheel类class HeavyBody: def __init__(self): pass class BigWheel: def __init__(self): passclass CarPartsFactory: def create_boy(self): return MiniBody() def create_wheel(self): return MiniWheel() class TruckPartsFactory: def create_boy(self): return MiniBody() def create_wheel(self): return MiniWheel()


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:feign调用中文参数被encode编译的问题
下一篇:Pytest学习-Fixture(pytest python)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~