diff --git a/pom.xml b/pom.xml index b3a47d5ec..ae6290b0e 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ decorator facade flyweight + proxy diff --git a/proxy/pom.xml b/proxy/pom.xml new file mode 100644 index 000000000..7e793ea8f --- /dev/null +++ b/proxy/pom.xml @@ -0,0 +1,23 @@ + + + 4.0.0 + + com.iluwatar + java-design-patterns + 1.0-SNAPSHOT + + com.iluwatar + proxy + 1.0-SNAPSHOT + proxy + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + diff --git a/proxy/src/main/java/com/iluwatar/App.java b/proxy/src/main/java/com/iluwatar/App.java new file mode 100644 index 000000000..1e81f3829 --- /dev/null +++ b/proxy/src/main/java/com/iluwatar/App.java @@ -0,0 +1,16 @@ +package com.iluwatar; + +public class App +{ + public static void main( String[] args ) + { + + WizardTowerProxy tower = new WizardTowerProxy(); + tower.enter(new Wizard("Red wizard")); + tower.enter(new Wizard("White wizard")); + tower.enter(new Wizard("Black wizard")); + tower.enter(new Wizard("Green wizard")); + tower.enter(new Wizard("Brown wizard")); + + } +} diff --git a/proxy/src/main/java/com/iluwatar/Wizard.java b/proxy/src/main/java/com/iluwatar/Wizard.java new file mode 100644 index 000000000..41c838fdc --- /dev/null +++ b/proxy/src/main/java/com/iluwatar/Wizard.java @@ -0,0 +1,16 @@ +package com.iluwatar; + +public class Wizard { + + private String name; + + public Wizard(String name) { + this.name = name; + } + + @Override + public String toString() { + return name; + } + +} diff --git a/proxy/src/main/java/com/iluwatar/WizardTower.java b/proxy/src/main/java/com/iluwatar/WizardTower.java new file mode 100644 index 000000000..891c4cc59 --- /dev/null +++ b/proxy/src/main/java/com/iluwatar/WizardTower.java @@ -0,0 +1,9 @@ +package com.iluwatar; + +public class WizardTower { + + public void enter(Wizard wizard) { + System.out.println(wizard + " enters the tower."); + } + +} diff --git a/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java b/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java new file mode 100644 index 000000000..4bdefa75d --- /dev/null +++ b/proxy/src/main/java/com/iluwatar/WizardTowerProxy.java @@ -0,0 +1,19 @@ +package com.iluwatar; + +public class WizardTowerProxy extends WizardTower { + + private static final int NUM_WIZARDS_ALLOWED = 3; + + private int numWizards; + + @Override + public void enter(Wizard wizard) { + if (numWizards < NUM_WIZARDS_ALLOWED) { + super.enter(wizard); + numWizards++; + } else { + System.out.println(wizard + " is not allowed to enter!"); + } + } + +}