「パラメーターのプロパティ渡し」でプログラムを読みやすくする、というアイデアはどうだろう

というこちらのBlog *1を拝見して思ったのだけれど。これってコンストラクタはデフォルトでもいいんじゃ?とか思ってみた。

つまり普通にこう。(ActionScript的に合ってるかは謎です!)

var f:Fish = new Fish();
f.speed = 2;
f.direction = 180;
f.x = 20;
f.y = 20;
f.minDistance = 16;
f.maxInfluence = 40;

javaでもまぁ、同じかな?しいて言うならsetter/getterメソッド使うくらい?

Fish fish = new Fish();
f.setSpeed(2);
f.setDirection(180);
f.setX(20);
f.setY(20);
f.setMinDistance(16);
f.setMaxDistance(40);

むしろUIE社長さんのObject使ったやり方は型安全でないのがどうにも好きになれないなぁ。この場合だと読みやすさと安全性のどっち取るかといったらやっぱり安全性のがいいと思うな。それに上記したように書けば読みやすさもあると思うし。

でもJavaバージョン書いてて思ったけど、普通にpublicとかにしといて放り込んでもよさげだなぁ。どうせサニタイジングなり、バリデーションなりは別途やる必要があるんだろうし。

最近Teeda使ってて良く思うのはPageクラスのsetter/getterが鬱陶しい・・・どうせEclipseでGenerate Getters and Setters...とかやっちゃうんだし。Seasar2.5のPublicフィールド対応ってのはいいと思うなぁ。かなり見やすくなるだろうし。楽しみにまっとりますん。

なんか段々日本語でおkな文章に・・・

*1:リンク書き損ねてたので修正