挂钩函数参数以适应将来的数据?

| 我必须用一些我不知道的东西来验证数据。我想在函数参数中提供一些占位符,以支持那些对象。 当前
Execute(start_time, end_time, DataSet, some_other_data_hook)
目前,我已将此钩子实现为字典,以便人们可以在列表中放入数据名称和值
Dictionary<name_of_the_data,List<value>> some_other_data_hook;
这肯定很难看,我想不出任何更好的方法来解决这个问题。     
已邀请:
我认为更好的方法是仅设计您现在需要的东西。即使您“知道”并得到领域专家和企业所有者的承诺,将会有更多规则出现,如果他们现在不在这里,也不要尝试设置占位符。 这部分是出于维护方面的考虑,程序集中不应包含任何未引用/未使用的代码。这会导致可维护性问题,因为您不确定是否有人在使用它。 另一个方面是您现在要定义未定义的东西所消耗的能量。持续时间也许是一个未来的钩子,所以您要为持续时间做计划,仅让产品所有者确定持续时间不是一个好主意。最后,您将架构一些您可能不需要的东西。 确保您的方法易于修改,不会造成重大更改,然后仅设置挂钩以应对当前需要执行的操作。 可以将其想像成制造计算机的人,您不希望他们在主板上扔掉一大堆多余的焊料,因为将来可能会需要新的设备。与代码相同,如果您没有明确的需求,那么现在就不要对其进行编码。     
\“一些东西\”相当模糊。它是否适合通过接口进行传递?类似于:
Execute(start_time, end_time, DataSet, IValidationRule)
,其中
IValidationRule
是:
public interface IValidationRule
{
    bool IsValid(DataSet data);
}
这将为您提供最大的灵活性,以便在需求变化时插入结构千差万别的不同“验证钩”。我可能会创建自己的返回值类型,例如
ValidationResult
或类似的东西。如果可以对所需行为强制执行合同,则可以围绕结构歧义进行编码。 如果您没有丝毫头绪,“挂钩”的结构或行为将是什么样子,那么我同意taylonr的观点。您无法为左侧字段中的模型建模。     

要回复问题请先登录注册