我們目前使用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