プログラマメモ2 - programmer no memo2

[java]コンストラクタ引数が嫌い 2006/02/26
2008/01/28

コンストラクタ引数が嫌いです。



わがままかもしれませんが、コンストラクタ引数が好きになれません。

Java APIでコンストラクタ引数が必要なものは別に嫌いではないです。それは何故かと考えてみたのですが、Java APIで定義されていクラスはプログラムを書く上で基本になるからなのでしょう。



自分で作成するクラスでコンストラクタ引数がでてくるとそのクラスが疑わしくなります。

おそらく、コンストラクタ引数がなにかと想像できないようなクラスを作ってしまうからなのでしょうか。



嫌いだと強く思うコンストラクタ引数は、2つ以上の引数をもつものがおおいようです。



コンストラクタを利用する際に、その使い方を思い出さないといけない場合は悲しくなります。

コンストラクタ引数の意味が直感的に思い出せないような設計になるとため息をつきながAPIを 調べます。

例えば、



A(Object object, int a, int b, int c)



というコンストラクタ引数があった場合、第一引数はともかくその他変数が何のために必要かしらないと使えなようなものはツライ。

エクリプスのようなツールでは、ソースコードがライブラリにアタッチされたいない場合は、引数の型をコードアシストに表示します。上記のメソッドの場合は、A(Object, int, int, int)と表示されます。これでは、引数の意味するところがわかりません。



プログラムを書く上で記憶力はあまり使いたくないです。。。



もちろん嫌いだからといって使わないということはないです。

: