[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 前橋