2004-06-11 (Fri)

_ OO設計(2)

ひがさんの方では業務モデルの話をしていても、私は単に漠然と考えを巡らしています > uguuさん。しかも私はRubyを気にしているので、あちらの議論とは直接はリンクしません。

 振る舞いは最も結びつきの高いオブジェクトにおくべきだ

これはとてもよい言葉なのですが、置き先となるクラスの存在を前提にしている点で(私の漠然の中では)あと一歩足りません。関連のあるデータをクラスにまとめるのは誰でもまず始めます。そこですぐに「振る舞いは最も結びつきの高いオブジェクトにおく」と、やっぱりover functionなクラスができてしまいます。振る舞いをクラスに抽出する基準が必要なのだと思います。

だから、教科書に書かれる<シナリオから名詞を抜き出してクラスの候補とする>というのはかなりdeprecatedじゃないかと。そうだとすると、MDAってどうやるんだろうといろいろ疑問がわきます。

こういったことは既知の論(誰かがすでに言葉で表現している)だと思うのですが、よい本を知りません。それとも永遠のテーマなのか。そうならそうだと言ってもらえると言葉を探さずにすむので楽かも。

それから、振る舞いをまとめたクラスは、それを使うクラスからすればデータなので(なのか?)、そこら辺もクリアにしたい。つまり、データって何かということかなぁ。

あと、Rubyだとmethodの変更は楽なので、Subclassよりもdelegateという命題も、信じなくてよいのかも。Dependency Injectionしなくてもよいのかも。そもそも、すべてをOOにする必要もないのかも。と基準が悩ましいです。

[]