最近在我正在进行的项目中,我遇到了以下问题:
假设我有一组(树状)数据结构:
销售合同 买方 地址 城市 电话 金融 卖方 地址 项目 价格 东西 其他的东西
并且SellingContract
会经历几个商业短语,每个短语都必须检查SellingContract
数据以确定它是否满足某些特定条件。
首先,我让顶部容器 ( SellingContract
) 提供所有条件检查器方法:
SellingChecker.tooMuchItems()
SellingChecker.canProceedToStepXXX()
但每次出现新情况时,我都必须修改SellingContract
.
有人可以建议我一种优雅的方法来解决这个问题吗?
目前,我正在考虑两种方法:
应用访问者模式
SellingContract
,SellingContract
将提供一个方法acceptConditionChecker(ConditionChecker)
,条件检查器将实现接口ConditionChecker
。创建以
SellingContract
作为参数的实用程序类,然后检查条件。这种方法要求实用程序类知道它的结构,SellingContract
并且对我来说似乎是程序性的。