Java でのデリゲート
Java などのプログラミング言語を使用している場合は、継承に精通している可能性があります。 しかし、継承の代わりに 委譲
があります。
Delegation
を介して、別のクラスのオブジェクトをインスタンス変数として使用できます。 スーパークラスから不要なメソッドを受け入れる必要がないため、いくつかの点で継承よりも優れています。
また、インスタンスは既知のクラスです。 委譲
を、あるオブジェクトがメソッド呼び出しを別のオブジェクトに転送できるオブジェクト間の関係作成者と呼びます。
Delegation
は実行時の柔軟性を提供します。 しかし、問題は、ほとんどの一般的なプログラミング言語が Delegation
をサポートしていないことです。
この記事では、Java での Delegation
の使用について見ていきます。 また、トピックをより簡単にするために適切な説明を含む例を使用して、トピックについて説明します。
Java での委任
以下では、Delegation
の簡単な例を見て、部分ごとに説明します。
class MainPrinter { // The class that hold the actual PrintData() method
void PrintData() {
System.out.println("This is the Delegate.");
}
}
class MyPrinter { // The class that calls PrintData() method from the object of class MainPrinter
MainPrinter p = new MainPrinter(); // Creating an object for MainPrinter class.
void PrintData() {
p.PrintData(); // Calling the method from MainPrinter class object.
}
}
class TestDelegate {
public static void main(String[] args) {
MyPrinter printer = new MyPrinter(); // Creating an object for MyPrinter class.
printer.PrintData(); // Calling the method from MyPrinter class object.
}
}
上記では、委任
を示す例を共有しました。 コードの各行の目的については既に説明しました。
上記の例では、MainPrinter
、MyPrinter
、および TestDelegate
という名前の 3つの異なるクラスを作成しました。クラス MainPrinter
には、データを印刷する実際のメソッドが含まれています。
また、クラス MyPrinter
には、主に MainPrinter
という名前の別のクラスから別のメソッドを呼び出す printData()
メソッドも含まれています。
しかし、TestDelegate
という名前のハンドラー クラスを見ると、MyPrinter
クラスからオブジェクトを作成したことがわかります。ここで、MyPrinter
クラスには実際の printData()
メソッドがありません。
上記のサンプル コードを実行すると、次のような出力が得られます。
This is the Delegate.
ここで共有されているコード例は Java であり、システムに Java が含まれていない場合は、環境に Java をインストールする必要があることに注意してください。
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn