在编程时,如何组织程序语言提供的类型介质是程序员首先要考虑的,以至于可能忽视了语言提供的类型可能并不适配真正的逻辑需求。
例如,在设计“身份证号”ID数据时,程序员会自然地使用String类型。如果在需求逻辑上没有对ID提出额外的要求,那么使用String是适配的。但在某些情况下需求逻辑会对ID提出更多的需求,逻辑上可能会考虑ID的内部信息结构,将其分拆为“地区号+出生日期+顺序号+验证码”,进一步要求实现ID数据正确性验证,得到ID内含的地区、出生日期等有意义的信息。这些需求都是String类型无法满足的,如果继续使用String类型表达ID,就会留下隐患。如果先进行逻辑设计,再考虑物理介质匹配,ID类型的设计应该如图1-29所示。
图1-29 区分逻辑设计与物理设计示例一