2010年6月11日 星期五

PWR Schema Design Decision:如何分散繼承關係中的屬性?

 

本文章討論,在進行PWR設計時,在一個繼承的關係中,父類別中的屬性是要分散到子類別中,還是存放在父類別中

image

上圖所示的是一個RIM Model片斷的表示方式,在上圖的例子中,父類別擁有最多的屬性。這樣的設計其實並不恰當,應該儘量將屬性搬移至子類別,論點如下

  1. RIM Model是採用UML的表示方式,父類別的屬性會被子類別進一步修飾。舉例來說,圖中Act這個父類別的activityTime在Observation這個子類別中,可能是表示檢驗發生的時間,而在Procedure這個子類別中,則表示排定的時間(Scheduled time)。單純地把所有的屬性都放置在父類別,對於閱讀此schema的開發人員,無法清楚地得知此屬性所代表的完整意含
  2. RIM的繼承關係似乎與一般對於物件的繼承有些不同,一個繼承的關係,是基於語意的關係而建立。因此會發生父類別的某些屬性對於子類別並沒有意義(需再check HL7 RIM確認此statement的正確性),藉由儘量將屬性搬移到子類別的動作,可以減少某些Act的instance,在某些屬性上為空值的狀況

修正後的結構類似下圖(p.s.為了簡化,下圖只是示意圖)

image

沒有留言:

張貼留言