- 既存のクラスの一種か(... kind of ...か)?
- 文字どおり、基底クラスの一種ではないものは、派生クラスにするべきではありません。
RectクラスやLineクラスはDiagramクラスの一種であるため、この質問はYESになります。
- 派生クラスは機能を追加するべきで、機能を削除して廉価版を作るべき
ではありません。もし使い方を単純にして低機能なクラスを作るのであれば、低機能なクラスを
基底クラスにするべきです。もしくは、包含クラスとして実装する方法もあります。
抽象クラスを派生して具象クラスを作ろうとしているので、YESになります。
- 今までは分類で派生してきたのに、新しく派生したものは機能で分類していないか。
例えば、哺乳類クラスを派生して、犬クラス、猫クラスを作ったのに、さらに犬クラスを派生して
盲導犬クラスや警察犬クラスを作ろうとしていないか。(盲導犬や警察犬は種類ではなく、機能の追加になる。)
1世代しか継承しないので、この質問はYESになります。
- 既存のクラスの派生クラスにした場合、基底クラスやたの派生クラスに変更を加える必要はないか?
- 他のクラスを変更するということは、それまで作ってきたプログラムが使えなくなるという
ことです。他のクラスに変更したり、他のクラスが無用になるくらいなら、新しく派生クラスを
つくるべきではありません。
Rectクラス、Lineクラスが存在し、新たにCIrcleクラスを付け加える場合、どのクラスにも変更がないので、
この質問はYESになります。
- 全然関係ない機能を付け加えるべきではありません。
Diagramクラスは抽象クラスで、Rectクラスなどは、その具象クラスなので、この質問もYESになります。
|