先日,今いる会社(派遣先の会社)でとあるプロジェクト
(秘守義務があるので,詳しくは言えない)のJava のソースファイルを見た.
なんですか,これは.
HogeHoge というクラスがあり,HogeHogeImpl というクラスがあった.
クラス名を見た時は,「あっ,RMI で作っているのかな」と思った.
しかーし,そんなもんではなかった.HogeHogeImpl は HogeHoge を継承(!?) しており,
HogeHogeImpl の全てのメソッドがスーパークラスである HogeHoge のメソッドをそのまま呼び出している.
こんな感じ.
public class HogeHogeImpl extends HogeHoge{
public void method1(){
super.method1();
}
}
public class HogeHoge{
public void method1(){
// some operation...
}
}
担当の人に「HogeHogeImpl って何か意味あるんですかねぇ」と聞いたところ,
「さぁ?」とのこと.
さらにパッケージ名なし,クラス名を見ただけで何をしているものなのかわからない.
(クラス名を出し手良いのかどうかわからないので,隠しておく)
さーらーに,Applet もあるのだが,この Applet.
ただものじゃない.LayoutManager を使っていない.
それに,なにかの IDE で作ったようなソース.
「IDE で作ったなら,プロジェクトファイル残しておけちゅーねん」
ということで,トラブル解決の前に,環境,仕様を簡単に理解するのに,4 時間程かかりました.
トラブルは解決しませんでしたが,ある程度原因が特定できたのはその 1 時間後.
作られたのは 6 年程前.Java が出てきた頃のものだ.JDK1.1 時代のものである.
あー,Object 指向が叫ばれ始めた時代とはいえ,これはないでしょ.
まぁ,そのころの僕はプログラム言語なんて知らなかった時代なので,これ以上はなんとも...