我们目前使用Microsoft的用户界面过程。 这基本上是一个MVP“框架”。 控制器通过输入/输出参数相互通信。混合decrator模式和工厂模式
控制器定义了这两种方法void OnEnterTask(object inputArguments)
,OutputArguments OnLeaveTask()
。 基本上所有的inputarguments都包含xml-data。
inputarguments只是dto的,所以它最多由控制器如何解释xml。
场景:
CalculateProductInputArgs
- >ProductController
- >CalculateProductOutputArgs
如果ProductController的只是需要处理工作得非常好单品。 但它需要能够与CompositeProductController进行通信。 它发送CalculateCompositeProductInput/OutputArgs
所以我的thougts是其由工厂
码(伪蟒)创建装饰的组合:
class Processor:
"""abstract"""
def ProcessInput(input):
pass
def ProcessOutput(output):
pass
class ProductProcessor(Processor):
"""implements specific product behaviour"""
pass
class CompositeProductProcessor(ProductProcessor):
"""implements specific product behaviour"""
def __init__(productprocessor):
self.processor = productprocessor
def ProcessInput(input)
productInput = input.Product
compositeData = input.CompositeData
self.processor(productInput)
class Factory:
def CreateProcessor(input):
productprocessor = ProductProcessor() #maybe a specialized processor
if input.IsComposite():
composite = CompositeProductProcessor(productprocessor)
return composite
return productprocessor
我的简单的问题。 这是一个很好的做法吗?或者你有更好的想法?
问候:)
是的,这可能会混淆开发人员。 – 2011-02-26 12:39:56