为了最大限度地实现代码重用,我为我的Python代码创建了一个相当复杂的类层次结构。它是这样的:简化复杂的类层次结构
class ElectionMethod
class IterativeMethod
class SNTV
...
class NonIterativeMethod
class OrderDependent
class CambridgeSTV
...
class OrderIndependent
class WIGM
class ERS97STV
...
class Recursive
class MeekSTV
...
只有类层次结构的叶子被实例化到对象中。这确实能够最大限度地实现代码重用,但代码本身很复杂(有些类有20多个方法),并且考虑到许多级别,可能会耗费时间来查找实现的地方。
我试过拔出大块的功能并将该功能放入单独的对象中,但是我没有找到一个好方法来做到这一点,因为几乎所有的功能都取决于公用数据。也就是说,我可以将一些代码移动到不同的对象上,但它需要引用大型复杂层次结构来获取所需的数据,因此它不是真正的封装。
有没有人有任何建议如何使这更易于管理?
如果不知道项目的具体细节,我们可以说不多。你需要仔细检查设计,找出需要继承的东西。 – katrielalex 2010-08-19 17:56:46
感谢您的建议。我将不得不仔细观察一下,看看他们是否能为我工作。 – 2010-08-20 12:56:56