Python 业务对象创建与单元测试实践
1. 处理重复代码:HasProducts 类的实现
在 Python 编程中,当遇到重复代码时,我们可以采用一些策略来优化代码结构。以 BaseArtisan 和 BaseOrder 类为例,它们都有行为相同的 products 属性,最初的实现是通过复制粘贴代码来完成的。在小型类库中,这可能不是大问题,但在大型类库中,这种重复代码会带来维护难题。
为了解决这个问题,我们可以利用 Python 支持多继承的特性,定义一个新的抽象基类 HasProducts ,将所有与 products 属性相关的代码集中在一处。这是一种面向对象编程中的 mixin 原则的应用,即一个类包含具体的功能实现,供其他类使用。
import abc
class HasProducts(metaclass=abc.ABCMeta):
"""
Provides baseline functionality, interface requirements, and
type-identity for objects that can have a common products
property whose membership is stored and handled in the same
way.
"""
def _get_products(self) ->
超级会员免费看
订阅专栏 解锁全文
1066

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



