「変数のメソッド呼び出し」でメソッド再利用・Javaソースコードの書き方

「変数のメソッド呼び出し」でメソッドを再利用

プログラムのソースコードメソッドを再利用する方法に、変数のメソッドを呼び出す方法があります。

次のような場合に「変数のメソッド」を呼び出して、メソッドを再利用してみようと思います。
あるクラスAから、別のクラスBの49%以下のメソッドを再利用する場合。

再利用するメソッド数が、クラスBの全メソッド数の49%以下である、という条件が成り立つなら、クラスAとクラスBの「結び付きは弱い」と判断します。そして「変数のメソッド呼び出し」という方法で、メソッドを再利用してみます。

「変数のメソッド呼び出し」の例

以下に「変数のメソッド呼び出し」という方法で、メソッドを再利用している例を書きます。
プログラムの詳細を理解する必要は、ありません。

public class NoteList{

    private List noteList = new ArrayList();


    public void add(int index, Note note){
        this.noteList.add(index, note);
    }

    public Note get(int index){
        return (Note)this.noteList.get(index);
    }

    public int size(){
        return this.noteList.size();
    }
    
    
    public void setOctave(int octave){
        for (int i = 0; i < this.noteList.size(); i++){
            Note note = (Note)this.noteList.get(i);
            note.setOctave(octave);
        }
    }
    
    ……

}

NoteListクラスは、Noteクラスの変数を、複数個、管理するためのクラスです。
Noteクラスの変数を複数個、管理するために、ArrayListクラスの再利用を試みます。

この管理処理のために、ArrayListクラスの次の3個のメソッドを再利用します。
ArrayListクラスのadd( …… )
ArrayListクラスのget( …… )
ArrayListクラスのsize()

ちなみにArrayListクラスのpublicなメソッドは、40個以上あります。40個以上のメソッドにおいて、今回再利用するメソッドは3個です。
よってArrayListクラスのメソッドにおいて、49%以下のメソッドを再利用していると判断しました。なので、NoteListクラスとArrayListクラスの「結び付きは弱い」と判断しました。

以上の事より「変数noteListのメソッド呼び出し」という方法で、メソッドを再利用してみます。
this.noteList.add(index, note);
this.noteList.get(index);
this.noteList.size();

参考:クラス継承によるメソッド再利用

先ほど言ったように、NoteListクラスとArrayListクラスの「結び付きは弱い」と判断しました。なので次のようにクラスの継承という方法で、メソッドを再利用することをやめました。
例:

 public class NoteList extends ArrayList {
     ……
 }

※この記事は、2004年7月当時の記事になります。