ページ137は、これらの顕著文ました:データ型は抽象化の敵ですか?本<em>ソフトウェア抽象化</em>の
整数は実際には非常に有用ではありません。あなたがそれらが必要だと思うなら、 をもう一度考えてください。 のプロパティをよりよく一致させる、より抽象的な記述がしばしばあります。なぜなら、整数が問題 に現れるということは、そのようにモデル化されるべきではありません。 整数が必要かどうかを調べるには、 が実際に依存しているプロパティーを自分自身に問い合せてください。例えば、 がそのメッセージに番号を付ける通信プロトコルは、区別されている数字にのみ依存することができます。または それはそれらに依存するかもしれません。または完全に注文されていることさえあります。 これらのいずれの場合も整数は使用されません。
ワウ!
これは重要です。私はこれを深く理解したい。
私の理解を助けるために、私は通信プロトコルの2つのバージョンを作成しました。
最初のバージョンはintデータ型を使用しています。
sig Message {
number: Int
}
番目のバージョンがありません:
sig Message {
number: Number
}
sig Number {}
は、より抽象的な番目のバージョンですか?どのように抽象的ですか? Numberはデータ型に結びついていないので、より抽象的ですか?最初のバージョンはデータ型(Int)を指定するため抽象度が低いですか?
データ型は抽象化の敵ですか?