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

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

1. 工厂模式

在处理数据提取时, JSONDataExtractor XMLDataExtractor 虽有相同接口,但 parsed_data() 返回的数据处理方式并不统一,一个返回列表,另一个返回树结构。若要使用相同代码处理所有提取器,除非借助外部数据提供者提供的通用数据映射,否则不太现实。假设已有处理 XML 和 JSON 文件的通用代码,若要支持第三种格式(如 SQLite),就需要进行相应的修改。

对于是否使用工厂方法模式,有经验的 Python 开发者认为,该模式在很多情况下属于过度设计或过于复杂。Python 的动态类型和一等函数特性,常使我们能用更简单直接的方式解决工厂方法模式试图解决的问题。例如,在 Python 中可直接使用简单函数或类方法创建对象,无需单独的工厂类或函数,这样能让代码更具可读性和 Python 风格,遵循“简单优于复杂”的原则。而且,Python 对默认参数、关键字参数等特性的支持,使构造函数的扩展更具向后兼容性,减少了对单独工厂方法的需求。

以下代码展示了在 Python 中直接创建对象的方式,无需中间函数或类,让代码更 Pythonic:

if case == "json":
    path = dir_path / Path("movies.json")
    data = JSONDataExtractor(path).parsed_data
2. 抽象工厂模式 <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值