福勒观察的界面应该是什么?

时间:2015-06-17 14:26:01

标签: oop

分析模式中,Fowler描述了如何处理临床观察,可以是数值的测量,也可以是分类观察(症状,性别等的缺席或存在)。以下是相关图表:

enter image description here

此图表明Observation应该是MeasurementCategory Observation的某种通用界面。但我看不出如何用强类型语言完成这项工作。例如,假设我想迭代在Observation上生成的所有Person,并根据它们是Measurement还是Category Observation执行不同的操作,我可以避免欺骗,例如测试对象的类型,转换等吗?

1 个答案:

答案 0 :(得分:0)

我的理解是这个(我可能错了)。数量和类别都来自一个公共接口(可能称为ObservationParameter),该接口具有API来处理由底层类型封装的数据(例如,评估或比较,原谅我对域的缺乏知识)。因此,在迭代人员时,你只需要获取observe.getObservationParameter()。evaluate()(或类似的东西)。这样您仍然可以使用抽象类型而无需强制转换或检查。适当的数值或分类逻辑将分别由数量和类别的具体实现来实现。