0
137頁的書軟件抽象有這些顯着的語句:數據類型是抽象的敵人嗎?
整數實際上是沒有多大用處。如果你認爲你需要他們, 再想一想;通常有更抽象的描述更好地匹配 屬性。僅僅因爲整數域出現在問題 域中並不意味着它們應該被建模。要計算出 是否需要整數,請問問自己 實際所依賴的屬性。例如,其編號爲其消息的通信協議可能僅依賴於不同的號碼;或者它可能依靠它們增加;或者甚至是完全有序的。 在這些情況下都不應使用整數。
哇!
這很重要。我想深刻理解這一點。
爲了幫助我理解,我創建了兩個通信協議版本。
第一個版本使用int數據類型:
sig Message {
number: Int
}
第二個版本不:
sig Message {
number: Number
}
sig Number {}
是第二個版本更抽象的?它是如何更抽象?它是更抽象的,因爲數字不綁定到數據類型?第一個版本不太抽象,因爲它指定了一個數據類型(Int)?
數據類型是抽象的敵人嗎?