Work on the DI example. Added second Wizard with injected Tobacco.
This commit is contained in:
parent
8b9e829b09
commit
b2bfdb1752
@ -0,0 +1,15 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public class AdvancedWizard implements Wizard {
|
||||||
|
|
||||||
|
private Tobacco tobacco;
|
||||||
|
|
||||||
|
public AdvancedWizard(Tobacco tobacco) {
|
||||||
|
this.tobacco = tobacco;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void smoke() {
|
||||||
|
tobacco.smoke(this);
|
||||||
|
}
|
||||||
|
}
|
@ -3,7 +3,10 @@ package com.iluwatar;
|
|||||||
public class App {
|
public class App {
|
||||||
|
|
||||||
public static void main( String[] args ) {
|
public static void main( String[] args ) {
|
||||||
Wizard wizard = new Wizard();
|
SimpleWizard simpleWizard = new SimpleWizard();
|
||||||
wizard.smoke();
|
simpleWizard.smoke();
|
||||||
|
|
||||||
|
AdvancedWizard advancedWizard = new AdvancedWizard(new SecondBreakfastTobacco());
|
||||||
|
advancedWizard.smoke();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,4 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
public class OldTobyTobacco implements Tobacco {
|
public class OldTobyTobacco extends Tobacco {
|
||||||
|
|
||||||
@Override
|
|
||||||
public void smoke() {
|
|
||||||
System.out.println(String.format("Smoking %s", this.getClass().getSimpleName()));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,4 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public class SecondBreakfastTobacco extends Tobacco {
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.iluwatar;
|
||||||
|
|
||||||
|
public class SimpleWizard implements Wizard {
|
||||||
|
|
||||||
|
private OldTobyTobacco tobacco = new OldTobyTobacco();
|
||||||
|
|
||||||
|
public void smoke() {
|
||||||
|
tobacco.smoke(this);
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,8 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
public interface Tobacco {
|
public abstract class Tobacco {
|
||||||
|
|
||||||
public void smoke();
|
public void smoke(Wizard wizard) {
|
||||||
|
System.out.println(String.format("%s smoking %s", wizard.getClass().getSimpleName(), this.getClass().getSimpleName()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
package com.iluwatar;
|
package com.iluwatar;
|
||||||
|
|
||||||
public class Wizard {
|
public interface Wizard {
|
||||||
|
|
||||||
private OldTobyTobacco tobacco = new OldTobyTobacco();
|
void smoke();
|
||||||
|
|
||||||
public void smoke() {
|
|
||||||
tobacco.smoke();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user