设计模式:工厂模式、抽象工厂模式与建造者模式详解
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 现实世界示例
- 汽车制造 :同一套冲压机械可用于制造不同车型的零部件(如车门、面板
超级会员免费看
订阅专栏 解锁全文
1350

被折叠的 条评论
为什么被折叠?



