[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 1553] Re: 集約とコンポ ジション



前橋です。

高橋(徹)さん:
>Rectangleクラスが公開している操作でPoint2Dを使用することと、内部
>で保持(集約あるいはコンポジション)している属性である座標にPoint2D
>を使用することは、特定の実装系でたまたま一致しているだけで、要件に
>よっては異なる型する設計もあり得ると思います。そのときは、外部には
>見せたくない内部で保有している型はinnerにするというのもありかと。。。

うむむ。いや、確かにそうなんですが...

えー、ちょっと話がずれますが、実は常々思ってたことなので...

フィールドはたいていprivateにするわけで、そんなところがどう
なってようがそれは実装詳細だ、という考え方は、それはそれで確
かにわかります。

が、Cプログラマ上がりの私なんかからすると、やっぱり「一番大
切なのはデータ構造だろう」という意識もあります。Cのソースを
読むのなら、まずはヘッダファイルからデータ構造を把握すること
を考えますね。

で、Javaのソースを読むときも、まずはフィールドを見てオブジェ
クト間の構造をつかもうとするわけなんですが、よく考えると、
クラスのソースを見るときに「まずprivateなメンバから」見るっ
てのは、なんか間違ってるような気もします。

でも、またよく考えてみると、UMLでクラス図を書く場合にも、こ
のクラスはこのクラスへの参照を持ってるとか、関係が1:1である
とか1:nであるとかは非常に重要な情報であるわけです。そして、
それがソースに直接現れるのは、やっぱりprivateフィールドであ
るわけで...

なんかそこはかとなく矛盾を感じてしまいます。

>> Java本の話も来てたりするので、ネタ集めおよびちょっと公開して様子見、
>> なんて意図もあったりする... (^^;
>おおっ。「Java言語 リファレンス完全制覇?」なんて題名だったり???

それだとリファレンスマニュアルみたい(笑)

私に書かせると、「Java言語 『ポインタ』完全制覇」になったり
しますぜ。いや、マジで。

以下余談ですが、

「C言語 ポインタ完全制覇」に、「JavaにもRubyにもポインタはあ
る」なんてことを書いたら、ruby-mlでまつもとゆきひろさんに批
判されたようです。

  http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/27218

てなわけで、こんなページ

  http://member.nifty.ne.jp/maebashi/seiha/hosoku001.html

を書いたんだけど、多分まつもとさんは見てないんだろうなあ。

誰かチクりませんか(笑)

                                               de 前橋