Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

メソッドを複数のファイルに分けるには、

それぞれに別個のクラスを設定する必要がありますか。

分割クラスはないんでしょうか。

6

回答

7000

閲覧

6件の回答

評価

0

処理単位で別クラスに分ければ可読性が悪くなるほど長くなることはないとおもいますが。(某com除)

どういった理由で分けようと?

評価

0

長くなって、見通しが悪くなりそうなのと、クラスにすると、インスタンスの生成が面倒なので。

評価

0

JavaはC++での混乱を経て、1ソース1ファイルという形に落ち着いた。今更それをやめるだろうか。

長くなりすぎる原因の多くは、設計のまずさに起因する。
機能・処理の分け方がまずくてシンプルなクラス・メソッドにならなかったり、継承/実装を用いていなかったり。
また、既存のクラスを使えば1行で可能な処理を、だらだらと書いてしまっている場合も多い。

staticメソッドにすることで、ファイルを分けてもインスタンスは生成しないで使える。
ただしこれに限らず、設計は全体にとっての部分部分のあり方によって決めるべきであり、インスタンスを生成「したくない」からstaticメソッドにするという理由は普通ない。

評価

0

プログラム内でコンパイルするという手もある。

JDK1.6からはJavaCompilerなども使えるのでやり方次第では色々出来るには出来るが…

他にもコンパイル+ロード(ローダー)などを全てファイル作成せずにメモリ上のみでやったりとか。

どちらにしても管理と保守性が著しく低下するのでそこまでやるメリットは全く見当たらない。

評価

0

C#にはクラスを複数のファイルに分けられるpartial 
classという概念があるけど… あれは失敗だと思いま
す。

「このクラスAにはhogeメソッドは定義されていないか
ら、スーパークラスSuperAのhogeメソッドが呼ばれてい
るはずだな。」なんて思っていたら、クラスAの別ファイ
ルにhogeメソッドが定義されていて、それが呼ばれてい
たなんてことがあったり。

「別のところで定義されているかも」と考えないといけ
ないということで神経を使います。

partial classは、GUIデザイナの自動生成コードとユー
ザーコードを分けるために無理矢理追加された機能のよ
うな気がします。正直言って迷惑な機能。

Javaにはpartial classがなくて本当に良かった。

eclipseのアウトラインやパンくずリストを上手に使うと
目的のメソッドにパッとジャンプできるので、1ファイル
が長くなっても、そんなに目視で該当箇所を探さなきゃ
いけない、ということにはならないはず。

評価

0

ビューの分離はGUIを扱えるどの言語でも悩ましい問題で、まだ最適というか、万人を満足させ得る(良いと思わないでも、せめて邪魔にならない)ものはないと思う。
別の言い方をすれば、「迷惑な機能」と感じる人間がいる一方で、「便利だ」「ありがたい」と感じている人間も一定数存在する。

ところで、C++も分割して定義ができる…というか、それを嫌ってJavaではクラスとソースをタイトに結びつけることにした。

それはともかく、後半は、実際クラスの階層構造をベタなソースで見ること自体が、そろそろ時代遅れなのかもしれない。
環境の進化により、クラスの構造は書いてるそばから統合環境が認識し、表示してくれるようになった。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。