我很难做出设计决定
我在python中有一个类,处理表单数据,这个数据与其他表单数据非常相似,所以我将它重构为它自己的对象,所以它可以被其他类重用。
delima是天气使这个formprocessor成为类的成员或类的父类。
如果这个术语错了,请纠正我,这是我之间的争吵:
基于单片继承的类:
class FormProcessor(object):
def post(self):
# ... process form data
class PageHandler(RequestHandler,FormProcessor):
def get(self):
# show page
或更基于模块化成员的类:
class FormProcessor(object):
def process(self):
# ... process form data
class PageHandler(RequestHandler):
def __init__(self):
self.processor = FormProcessor()
def get(self):
# show page
def post(self):
self.processor.process(self.postdata)
我倾向于第二种,但我不确定在可维护性方面可能会产生什么后果。我倾向于它的原因是,我喜欢将处理视为发生的动作,而不是作为PageHandler的主要部分,因此将其作为成员对象而不是父对象是有意义的。
让我感到困扰的是,当类间实现功能时,它最终会在实例上有很长的函数列表,我试图对它们进行更好的分类,以便程序可以理解并反映它正在建模的系统。
期待有关此问题的任何建议
答案 0 :(得分:7)
绝对选择模块化方法。采用模块化方法的一些优点是:
一般来说,坚持认为一个班级做一件事;在维护软件时更容易看到你正在使用什么,以及更容易编写(你只需要一次考虑一个上下文)。