5、设计模式:工厂模式、抽象工厂模式与建造者模式详解

设计模式:工厂模式、抽象工厂模式与建造者模式详解

1. 工厂模式

在处理数据提取时,JSONDataExtractor 和 XMLDataExtractor 虽有相同接口,但 parsed_data() 返回的数据处理方式不同,一个返回列表,另一个返回树结构,需用不同 Python 代码处理。若要统一处理 XML 和 JSON 文件并支持 SQLite 等第三种格式,需使用通用数据映射,这通常由外部数据提供者提供。

对于是否使用工厂方法模式,资深 Python 开发者认为,该模式在很多情况下可能过度设计或过于复杂。Python 的动态类型和一等函数特性,常能让我们用简单函数或类方法直接创建对象,无需单独的工厂类或函数,使代码更具可读性和 Python 风格。同时,Python 对默认参数、关键字参数等特性的支持,也便于以向后兼容的方式扩展构造函数,减少了对工厂方法的需求。

以下代码展示了在 Python 中直接创建对象的方式:

if case == "json":
    path = dir_path / Path("movies.json")
    data = JSONDataExtractor(path).parsed_data
2. 抽象工厂模式

抽象工厂模式是工厂方法模式的泛化,它是一组工厂方法的逻辑集合,每个工厂方法负责生成不同类型的对象。

2.1 现实世界示例
  • 汽车制造 :同一套冲压机械可用于制造不同车型的零部件(如车门、面板
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值