Kreirano 2024-09-30 Mon 13:31, pritisni ESC za mapu, m za meni, Ctrl+Shift+F za pretragu
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()"); }
}
class C implements I {
// delegation
I i = new A();
public void f() { i.f(); }
public void g() { i.g(); }
}
// normal attributes
public void toA() { i = new A(); }
public void toB() { i = new B(); }
public class Main {
public static void main(String[] args) {
C c = new C();
c.f();
// output: A: doing f()
c.g();
// output: A: doing g()
c.toB();
c.f();
// output: B: doing f()
c.g();
// output: B: doing g()
}
}
Bazične osobine kreacionih obrazaca su sledeće:
Prema [1] kreacioni obrasci su sledeći:
Kreiranje objekta kopiranjem već postojeće instance.
Konstrukcija složenih objekata podelom nadležnosti na onoga ko “zna” kako treba napraviti strukturu složenog objekta i onoga ko “zna” kako treba kreirati pojedinačne delove.
Razdvajamo konstrukciju složenog objekta (najčešće Composite) od njegove reprezentacije tako da isti postupak izgradnje može rezultovati različitim reprezentacijama.