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 static void main( String[] args ) {
|
||||
Wizard wizard = new Wizard();
|
||||
wizard.smoke();
|
||||
SimpleWizard simpleWizard = new SimpleWizard();
|
||||
simpleWizard.smoke();
|
||||
|
||||
AdvancedWizard advancedWizard = new AdvancedWizard(new SecondBreakfastTobacco());
|
||||
advancedWizard.smoke();
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,4 @@
|
||||
package com.iluwatar;
|
||||
|
||||
public class OldTobyTobacco implements Tobacco {
|
||||
|
||||
@Override
|
||||
public void smoke() {
|
||||
System.out.println(String.format("Smoking %s", this.getClass().getSimpleName()));
|
||||
}
|
||||
public class OldTobyTobacco extends Tobacco {
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
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;
|
||||
|
||||
public class Wizard {
|
||||
public interface Wizard {
|
||||
|
||||
private OldTobyTobacco tobacco = new OldTobyTobacco();
|
||||
|
||||
public void smoke() {
|
||||
tobacco.smoke();
|
||||
}
|
||||
void smoke();
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user