Okapi Project   Web technological site for the beginner... Top

1. 実装レベルへの落とし込み

1.1. クラスの責務と実装

1.1.1 数値クラスについて考える

以上で、数値クラスの設計はひとまず終了。。。 と行きたいところですが、もう一度要件を深く見てみましょう。

割算での、割る数は「0でないこと」を保障する必要があります。


実現の方法としては、数値クラス内で「割る数の場合だけ0でないこと」のチェックを行うことが考えられます。。。


しかし、ここはオブジェクト指向の継承を使って、数値クラスを拡張した、「割る数値クラス」を作成することにしましょう。

(1) 割る数値クラス

責務 割る数が0でないことを保障する。
数値クラスを継承します。
属性  
振舞 1. 引数を受け取りオブジェクトを生成する。
2. 0の数値でないことをチェックする。
〜割る数値クラスを作ることは正しいか?〜

今回、割る数値クラスは、数値クラスのサブクラスとして拡張しましたが、これは見方によっては正しい選択とはいえません。それは、ゼロで割ってエラーとなるのは数値クラスの問題ではなく、割算の問題だからです。したがって、割算クラスのなかで、エラー処理すべき事項であるといえます。
今回は、継承による機能拡張の例を示すために、あえて数値クラスのサブクラスとしています。