可能なことをすべてできるプリミティブを用意する
クラスをデザインする場合に、対象の性質から可能であるべき操作を検討し、 それをすべて実現できるプリミティブのセットを用意する。
利点
どんなに使いにくくても不可能にはならない
欠点
対象の本質をデザインの時点で完全に把握しなければならない。
注意点
プリミティブは使いやすい必要はない。 必ずしもプリミティブが、使用頻度が高い、あるいは高くあるべき操作とは限らない。
使いやすいメソッド名は、使用頻度が高いものにとっておき、 プリミティブはとりあえず長い名前で用意しておくのが良い。
とくに、Ruby や C++ の演算子は、とくに使いやすいため、 使用頻度を考えずにプリミティブを割り当てるべきではない。
たとえば、Java の = = 演算子は String についてポインタ等価性を判断するが、人間は内容の等価性を期待しがちである。 ポインタ等価性のほうげプリミティブであるが、それは人間の期待とはずれている。 Ruby では、= = は内容の等価性で、ポインタ等価性は equal? メソッドで実現される。
Last modified: 2009-05-13
Attached files total: 0Bytes