为了最大限度地重用代码,我为我的 Python 代码创建了一个相当复杂的类层次结构。它是这样的:
class ElectionMethod
class IterativeMethod
class SNTV
...
class NonIterativeMethod
class OrderDependent
class CambridgeSTV
...
class OrderIndependent
class WIGM
class ERS97STV
...
class Recursive
class MeekSTV
...
只有类层次结构的叶子被实例化为对象。这确实达到了最大化代码重用的目的,但是代码本身很复杂(有些类有 20 个左右的方法),并且考虑到许多级别,找到实现某些东西的位置可能很耗时。
我已经尝试提取大量功能并将该功能放在一个单独的对象中,但我还没有找到一个好的方法来做到这一点,因为几乎所有的功能都依赖于公共数据。即,我可以将一些代码移动到不同的对象,但它需要回溯到大的复杂层次结构以获取所需的数据,因此它并不是真正的封装。
有人对如何使这更易于管理有任何建议吗?