Revision: 70473
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at March 1, 2016 09:33 by kolepep
Initial Code
interface I { void f(); void g(); } class A implements I { public void f() { System.out.println("A: doing f()"); } public void g() { System.out.println("A: doing g()"); } } class B implements I { public void f() { System.out.println("B: doing f()"); } public void g() { System.out.println("B: doing g()"); } } // changing the implementing object in run-time (normally done in compile time) class C implements I { I i = null; // delegation public C(I i){ setI(i); } public void f() { i.f(); } public void g() { i.g(); } // normal attributes public void setI(I i) { this.i = i; } } public class Main { public static void main(String[] arguments) { C c = new C(new A()); c.f(); // output: A: doing f() c.g(); // output: A: doing g() c.setI(new B()); c.f(); // output: B: doing f() c.g(); // output: B: doing g() } }
Initial URL
https://en.wikipedia.org/wiki/Helper_object
Initial Description
In software engineering, the delegation pattern is a design pattern in object-oriented programming where an object, instead of performing one of its stated tasks, delegates that task to an associated helper object.
Initial Title
Delegation pattern
Initial Tags
java
Initial Language
Java