【发布时间】:2011-04-01 06:44:41
【问题描述】:
为了最大限度地重用代码,我为我的 Python 代码创建了一个相当复杂的类层次结构。它是这样的:
class ElectionMethod
class IterativeMethod
class SNTV
...
class NonIterativeMethod
class OrderDependent
class CambridgeSTV
...
class OrderIndependent
class WIGM
class ERS97STV
...
class Recursive
class MeekSTV
...
只有类层次结构的叶子被实例化为对象。这确实达到了最大化代码重用的目的,但是代码本身很复杂(有些类有 20 个左右的方法),并且考虑到许多级别,找到实现某些东西的位置可能很耗时。
我尝试提取大量功能并将该功能放在一个单独的对象中,但我还没有找到一个好的方法来做到这一点,因为几乎所有的功能都依赖于公共数据。即,我可以将一些代码移动到不同的对象,但它需要回溯到大型复杂层次结构以获取所需的数据,因此它不是真正的封装。
有人对如何使这更易于管理有任何建议吗?
【问题讨论】:
-
如果不知道项目的确切细节,我们无话可说!您需要仔细检查设计并确定需要从什么继承。
-
感谢您的建议。我得仔细看看他们是否可以为我工作。