观察和测量
许多计算机系统记录现实世界中各种对象的信息,这些信息通常表现为计算机系统中的记录、属性、对象等其他各种各样的形式。最典型的方式是把某项信息记录成某个对象的一个属性,例如,一个人体重70公斤记录成“人(Person)”类的体重(Weight)属性,值为70。本章将讲述这种方式的不足,并提出一些更合理的解决方法。
本章的模式来自与医疗领域有关的项目,所以采用了许多这一领域的例子。
本章中的模式图均由笔者以通用的UML格式重画。
?
1.1数量(Quantity)?
当用上面提到的方法记录数据时,最常见的不足之处就是单纯的数字不足以代表它的意义,是70公斤,70磅,或者别的什么?我们需要确切的单位。可不可以创建属性和个单位之间的关联?可以,但那样系统中将会出现错综复杂的关联,从而增加了系统的复杂度。
如果改用一个Quantity类来表达,这样的意义将会更简单。如下图所示,Quantity类包括一个amount属性,记录数值,一个units属性,记录单位,并支持一般的运算操作。

?
?
?