From 8f907de6ff10bc112c3fad3ea6b04a47470036f4 Mon Sep 17 00:00:00 2001 From: kim Date: Sun, 17 Jan 2021 23:07:00 +0900 Subject: [PATCH] Observer Pattern (use Observable) --- .../src/AbstractFactory/abst/Body.java | 4 ---- .../src/AbstractFactory/abst/Wheel.java | 4 ---- .../AbstractFactory/{ => example01}/Main.java | 11 +++++----- .../{ => example01}/abst/BikeFactory.java | 2 +- .../AbstractFactory/example01/abst/Body.java | 4 ++++ .../AbstractFactory/example01/abst/Wheel.java | 4 ++++ .../{ => example01}/gt/GtBikeFactory.java | 8 +++---- .../AbstractFactory/example01/gt/GtBody.java | 6 ++++++ .../AbstractFactory/example01/gt/GtWheel.java | 6 ++++++ .../example01/sam/SamBody.java | 6 ++++++ .../{ => example01}/sam/SamFactory.java | 8 +++---- .../example01/sam/SamWheel.java | 6 ++++++ .../example02}/Main.java | 10 ++++----- .../example02}/abst/Button.java | 2 +- .../example02}/abst/GuiFactory.java | 2 +- .../example02}/abst/TextArea.java | 2 +- .../example02}/concrete/FactoryInstance.java | 8 +++---- .../src/AbstractFactory/gt/GtBody.java | 6 ------ .../src/AbstractFactory/gt/GtWheel.java | 6 ------ .../src/AbstractFactory/sam/SamBody.java | 6 ------ .../src/AbstractFactory/sam/SamWheel.java | 6 ------ .../{ => example01}/Calculator.java | 2 +- .../{ => example01}/Main.java | 2 +- .../{ => example01}/PlusCalculator.java | 2 +- .../{ => example01}/Request.java | 2 +- .../{ => example01}/SubCalculator.java | 2 +- .../example02}/Application.java | 2 +- .../example02}/Armor.java | 2 +- .../example02}/Attack.java | 2 +- .../example02}/Defense.java | 2 +- .../Observer/{ => example01}/Application.java | 2 +- .../src/Observer/{ => example01}/Button.java | 2 +- .../src/Observer/example02/Application.java | 21 +++++++++++++++++++ .../src/Observer/example02/Button.java | 11 ++++++++++ 34 files changed, 101 insertions(+), 70 deletions(-) delete mode 100644 design-pattern/src/AbstractFactory/abst/Body.java delete mode 100644 design-pattern/src/AbstractFactory/abst/Wheel.java rename design-pattern/src/AbstractFactory/{ => example01}/Main.java (61%) rename design-pattern/src/AbstractFactory/{ => example01}/abst/BikeFactory.java (67%) create mode 100644 design-pattern/src/AbstractFactory/example01/abst/Body.java create mode 100644 design-pattern/src/AbstractFactory/example01/abst/Wheel.java rename design-pattern/src/AbstractFactory/{ => example01}/gt/GtBikeFactory.java (55%) create mode 100644 design-pattern/src/AbstractFactory/example01/gt/GtBody.java create mode 100644 design-pattern/src/AbstractFactory/example01/gt/GtWheel.java create mode 100644 design-pattern/src/AbstractFactory/example01/sam/SamBody.java rename design-pattern/src/AbstractFactory/{ => example01}/sam/SamFactory.java (55%) create mode 100644 design-pattern/src/AbstractFactory/example01/sam/SamWheel.java rename design-pattern/src/{AbstractFactory2 => AbstractFactory/example02}/Main.java (56%) rename design-pattern/src/{AbstractFactory2 => AbstractFactory/example02}/abst/Button.java (54%) rename design-pattern/src/{AbstractFactory2 => AbstractFactory/example02}/abst/GuiFactory.java (69%) rename design-pattern/src/{AbstractFactory2 => AbstractFactory/example02}/abst/TextArea.java (56%) rename design-pattern/src/{AbstractFactory2 => AbstractFactory/example02}/concrete/FactoryInstance.java (91%) delete mode 100644 design-pattern/src/AbstractFactory/gt/GtBody.java delete mode 100644 design-pattern/src/AbstractFactory/gt/GtWheel.java delete mode 100644 design-pattern/src/AbstractFactory/sam/SamBody.java delete mode 100644 design-pattern/src/AbstractFactory/sam/SamWheel.java rename design-pattern/src/ChainOfResponsibility/{ => example01}/Calculator.java (92%) rename design-pattern/src/ChainOfResponsibility/{ => example01}/Main.java (90%) rename design-pattern/src/ChainOfResponsibility/{ => example01}/PlusCalculator.java (90%) rename design-pattern/src/ChainOfResponsibility/{ => example01}/Request.java (93%) rename design-pattern/src/ChainOfResponsibility/{ => example01}/SubCalculator.java (90%) rename design-pattern/src/{ChainOfResponsibility2 => ChainOfResponsibility/example02}/Application.java (94%) rename design-pattern/src/{ChainOfResponsibility2 => ChainOfResponsibility/example02}/Armor.java (94%) rename design-pattern/src/{ChainOfResponsibility2 => ChainOfResponsibility/example02}/Attack.java (86%) rename design-pattern/src/{ChainOfResponsibility2 => ChainOfResponsibility/example02}/Defense.java (63%) rename design-pattern/src/Observer/{ => example01}/Application.java (92%) rename design-pattern/src/Observer/{ => example01}/Button.java (93%) create mode 100644 design-pattern/src/Observer/example02/Application.java create mode 100644 design-pattern/src/Observer/example02/Button.java diff --git a/design-pattern/src/AbstractFactory/abst/Body.java b/design-pattern/src/AbstractFactory/abst/Body.java deleted file mode 100644 index ed538b8c..00000000 --- a/design-pattern/src/AbstractFactory/abst/Body.java +++ /dev/null @@ -1,4 +0,0 @@ -package AbstractFactory.abst; - -public interface Body { -} diff --git a/design-pattern/src/AbstractFactory/abst/Wheel.java b/design-pattern/src/AbstractFactory/abst/Wheel.java deleted file mode 100644 index 3bd62d0f..00000000 --- a/design-pattern/src/AbstractFactory/abst/Wheel.java +++ /dev/null @@ -1,4 +0,0 @@ -package AbstractFactory.abst; - -public interface Wheel { -} diff --git a/design-pattern/src/AbstractFactory/Main.java b/design-pattern/src/AbstractFactory/example01/Main.java similarity index 61% rename from design-pattern/src/AbstractFactory/Main.java rename to design-pattern/src/AbstractFactory/example01/Main.java index 7eb1a31a..81695000 100644 --- a/design-pattern/src/AbstractFactory/Main.java +++ b/design-pattern/src/AbstractFactory/example01/Main.java @@ -1,10 +1,9 @@ -package AbstractFactory; +package AbstractFactory.example01; -import AbstractFactory.abst.BikeFactory; -import AbstractFactory.abst.Body; -import AbstractFactory.abst.Wheel; -import AbstractFactory.gt.GtBikeFactory; -import AbstractFactory.sam.SamFactory; +import AbstractFactory.example01.abst.BikeFactory; +import AbstractFactory.example01.abst.Body; +import AbstractFactory.example01.abst.Wheel; +import AbstractFactory.example01.gt.GtBikeFactory; public class Main { public static void main(String[] args) { diff --git a/design-pattern/src/AbstractFactory/abst/BikeFactory.java b/design-pattern/src/AbstractFactory/example01/abst/BikeFactory.java similarity index 67% rename from design-pattern/src/AbstractFactory/abst/BikeFactory.java rename to design-pattern/src/AbstractFactory/example01/abst/BikeFactory.java index 0bcff70a..5a73786d 100644 --- a/design-pattern/src/AbstractFactory/abst/BikeFactory.java +++ b/design-pattern/src/AbstractFactory/example01/abst/BikeFactory.java @@ -1,4 +1,4 @@ -package AbstractFactory.abst; +package AbstractFactory.example01.abst; public interface BikeFactory { diff --git a/design-pattern/src/AbstractFactory/example01/abst/Body.java b/design-pattern/src/AbstractFactory/example01/abst/Body.java new file mode 100644 index 00000000..4991b2eb --- /dev/null +++ b/design-pattern/src/AbstractFactory/example01/abst/Body.java @@ -0,0 +1,4 @@ +package AbstractFactory.example01.abst; + +public interface Body { +} diff --git a/design-pattern/src/AbstractFactory/example01/abst/Wheel.java b/design-pattern/src/AbstractFactory/example01/abst/Wheel.java new file mode 100644 index 00000000..624809b2 --- /dev/null +++ b/design-pattern/src/AbstractFactory/example01/abst/Wheel.java @@ -0,0 +1,4 @@ +package AbstractFactory.example01.abst; + +public interface Wheel { +} diff --git a/design-pattern/src/AbstractFactory/gt/GtBikeFactory.java b/design-pattern/src/AbstractFactory/example01/gt/GtBikeFactory.java similarity index 55% rename from design-pattern/src/AbstractFactory/gt/GtBikeFactory.java rename to design-pattern/src/AbstractFactory/example01/gt/GtBikeFactory.java index c775f923..41cfaaf7 100644 --- a/design-pattern/src/AbstractFactory/gt/GtBikeFactory.java +++ b/design-pattern/src/AbstractFactory/example01/gt/GtBikeFactory.java @@ -1,8 +1,8 @@ -package AbstractFactory.gt; +package AbstractFactory.example01.gt; -import AbstractFactory.abst.BikeFactory; -import AbstractFactory.abst.Body; -import AbstractFactory.abst.Wheel; +import AbstractFactory.example01.abst.BikeFactory; +import AbstractFactory.example01.abst.Body; +import AbstractFactory.example01.abst.Wheel; public class GtBikeFactory implements BikeFactory { @Override diff --git a/design-pattern/src/AbstractFactory/example01/gt/GtBody.java b/design-pattern/src/AbstractFactory/example01/gt/GtBody.java new file mode 100644 index 00000000..b4146acc --- /dev/null +++ b/design-pattern/src/AbstractFactory/example01/gt/GtBody.java @@ -0,0 +1,6 @@ +package AbstractFactory.example01.gt; + +import AbstractFactory.example01.abst.Body; + +public class GtBody implements Body { +} diff --git a/design-pattern/src/AbstractFactory/example01/gt/GtWheel.java b/design-pattern/src/AbstractFactory/example01/gt/GtWheel.java new file mode 100644 index 00000000..ed516e1c --- /dev/null +++ b/design-pattern/src/AbstractFactory/example01/gt/GtWheel.java @@ -0,0 +1,6 @@ +package AbstractFactory.example01.gt; + +import AbstractFactory.example01.abst.Wheel; + +public class GtWheel implements Wheel { +} diff --git a/design-pattern/src/AbstractFactory/example01/sam/SamBody.java b/design-pattern/src/AbstractFactory/example01/sam/SamBody.java new file mode 100644 index 00000000..f8a7d36e --- /dev/null +++ b/design-pattern/src/AbstractFactory/example01/sam/SamBody.java @@ -0,0 +1,6 @@ +package AbstractFactory.example01.sam; + +import AbstractFactory.example01.abst.Body; + +public class SamBody implements Body { +} diff --git a/design-pattern/src/AbstractFactory/sam/SamFactory.java b/design-pattern/src/AbstractFactory/example01/sam/SamFactory.java similarity index 55% rename from design-pattern/src/AbstractFactory/sam/SamFactory.java rename to design-pattern/src/AbstractFactory/example01/sam/SamFactory.java index 8cb829a8..9a53099e 100644 --- a/design-pattern/src/AbstractFactory/sam/SamFactory.java +++ b/design-pattern/src/AbstractFactory/example01/sam/SamFactory.java @@ -1,8 +1,8 @@ -package AbstractFactory.sam; +package AbstractFactory.example01.sam; -import AbstractFactory.abst.BikeFactory; -import AbstractFactory.abst.Body; -import AbstractFactory.abst.Wheel; +import AbstractFactory.example01.abst.BikeFactory; +import AbstractFactory.example01.abst.Body; +import AbstractFactory.example01.abst.Wheel; public class SamFactory implements BikeFactory { @Override diff --git a/design-pattern/src/AbstractFactory/example01/sam/SamWheel.java b/design-pattern/src/AbstractFactory/example01/sam/SamWheel.java new file mode 100644 index 00000000..41797f32 --- /dev/null +++ b/design-pattern/src/AbstractFactory/example01/sam/SamWheel.java @@ -0,0 +1,6 @@ +package AbstractFactory.example01.sam; + +import AbstractFactory.example01.abst.Wheel; + +public class SamWheel implements Wheel { +} diff --git a/design-pattern/src/AbstractFactory2/Main.java b/design-pattern/src/AbstractFactory/example02/Main.java similarity index 56% rename from design-pattern/src/AbstractFactory2/Main.java rename to design-pattern/src/AbstractFactory/example02/Main.java index 4e6aab5d..413bde19 100644 --- a/design-pattern/src/AbstractFactory2/Main.java +++ b/design-pattern/src/AbstractFactory/example02/Main.java @@ -1,9 +1,9 @@ -package AbstractFactory2; +package AbstractFactory.example02; -import AbstractFactory2.abst.Button; -import AbstractFactory2.abst.GuiFactory; -import AbstractFactory2.abst.TextArea; -import AbstractFactory2.concrete.FactoryInstance; +import AbstractFactory.example02.abst.Button; +import AbstractFactory.example02.abst.GuiFactory; +import AbstractFactory.example02.abst.TextArea; +import AbstractFactory.example02.concrete.FactoryInstance; public class Main { public static void main(String[] args) { diff --git a/design-pattern/src/AbstractFactory2/abst/Button.java b/design-pattern/src/AbstractFactory/example02/abst/Button.java similarity index 54% rename from design-pattern/src/AbstractFactory2/abst/Button.java rename to design-pattern/src/AbstractFactory/example02/abst/Button.java index 5fa52570..e278d14a 100644 --- a/design-pattern/src/AbstractFactory2/abst/Button.java +++ b/design-pattern/src/AbstractFactory/example02/abst/Button.java @@ -1,4 +1,4 @@ -package AbstractFactory2.abst; +package AbstractFactory.example02.abst; public interface Button { diff --git a/design-pattern/src/AbstractFactory2/abst/GuiFactory.java b/design-pattern/src/AbstractFactory/example02/abst/GuiFactory.java similarity index 69% rename from design-pattern/src/AbstractFactory2/abst/GuiFactory.java rename to design-pattern/src/AbstractFactory/example02/abst/GuiFactory.java index ecbfe444..f10c4b8d 100644 --- a/design-pattern/src/AbstractFactory2/abst/GuiFactory.java +++ b/design-pattern/src/AbstractFactory/example02/abst/GuiFactory.java @@ -1,4 +1,4 @@ -package AbstractFactory2.abst; +package AbstractFactory.example02.abst; public interface GuiFactory { diff --git a/design-pattern/src/AbstractFactory2/abst/TextArea.java b/design-pattern/src/AbstractFactory/example02/abst/TextArea.java similarity index 56% rename from design-pattern/src/AbstractFactory2/abst/TextArea.java rename to design-pattern/src/AbstractFactory/example02/abst/TextArea.java index 147ec97e..9cff3d10 100644 --- a/design-pattern/src/AbstractFactory2/abst/TextArea.java +++ b/design-pattern/src/AbstractFactory/example02/abst/TextArea.java @@ -1,4 +1,4 @@ -package AbstractFactory2.abst; +package AbstractFactory.example02.abst; public interface TextArea { String getText(); diff --git a/design-pattern/src/AbstractFactory2/concrete/FactoryInstance.java b/design-pattern/src/AbstractFactory/example02/concrete/FactoryInstance.java similarity index 91% rename from design-pattern/src/AbstractFactory2/concrete/FactoryInstance.java rename to design-pattern/src/AbstractFactory/example02/concrete/FactoryInstance.java index fdc8d7d0..8290233e 100644 --- a/design-pattern/src/AbstractFactory2/concrete/FactoryInstance.java +++ b/design-pattern/src/AbstractFactory/example02/concrete/FactoryInstance.java @@ -1,8 +1,8 @@ -package AbstractFactory2.concrete; +package AbstractFactory.example02.concrete; -import AbstractFactory2.abst.Button; -import AbstractFactory2.abst.GuiFactory; -import AbstractFactory2.abst.TextArea; +import AbstractFactory.example02.abst.Button; +import AbstractFactory.example02.abst.GuiFactory; +import AbstractFactory.example02.abst.TextArea; public class FactoryInstance { diff --git a/design-pattern/src/AbstractFactory/gt/GtBody.java b/design-pattern/src/AbstractFactory/gt/GtBody.java deleted file mode 100644 index 78d035b9..00000000 --- a/design-pattern/src/AbstractFactory/gt/GtBody.java +++ /dev/null @@ -1,6 +0,0 @@ -package AbstractFactory.gt; - -import AbstractFactory.abst.Body; - -public class GtBody implements Body { -} diff --git a/design-pattern/src/AbstractFactory/gt/GtWheel.java b/design-pattern/src/AbstractFactory/gt/GtWheel.java deleted file mode 100644 index 55728a8a..00000000 --- a/design-pattern/src/AbstractFactory/gt/GtWheel.java +++ /dev/null @@ -1,6 +0,0 @@ -package AbstractFactory.gt; - -import AbstractFactory.abst.Wheel; - -public class GtWheel implements Wheel { -} diff --git a/design-pattern/src/AbstractFactory/sam/SamBody.java b/design-pattern/src/AbstractFactory/sam/SamBody.java deleted file mode 100644 index ea96b74a..00000000 --- a/design-pattern/src/AbstractFactory/sam/SamBody.java +++ /dev/null @@ -1,6 +0,0 @@ -package AbstractFactory.sam; - -import AbstractFactory.abst.Body; - -public class SamBody implements Body { -} diff --git a/design-pattern/src/AbstractFactory/sam/SamWheel.java b/design-pattern/src/AbstractFactory/sam/SamWheel.java deleted file mode 100644 index 4279fc3c..00000000 --- a/design-pattern/src/AbstractFactory/sam/SamWheel.java +++ /dev/null @@ -1,6 +0,0 @@ -package AbstractFactory.sam; - -import AbstractFactory.abst.Wheel; - -public class SamWheel implements Wheel { -} diff --git a/design-pattern/src/ChainOfResponsibility/Calculator.java b/design-pattern/src/ChainOfResponsibility/example01/Calculator.java similarity index 92% rename from design-pattern/src/ChainOfResponsibility/Calculator.java rename to design-pattern/src/ChainOfResponsibility/example01/Calculator.java index 4dd37e8e..0b7ede81 100644 --- a/design-pattern/src/ChainOfResponsibility/Calculator.java +++ b/design-pattern/src/ChainOfResponsibility/example01/Calculator.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility; +package ChainOfResponsibility.example01; abstract public class Calculator { diff --git a/design-pattern/src/ChainOfResponsibility/Main.java b/design-pattern/src/ChainOfResponsibility/example01/Main.java similarity index 90% rename from design-pattern/src/ChainOfResponsibility/Main.java rename to design-pattern/src/ChainOfResponsibility/example01/Main.java index 588ca153..6c792241 100644 --- a/design-pattern/src/ChainOfResponsibility/Main.java +++ b/design-pattern/src/ChainOfResponsibility/example01/Main.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility; +package ChainOfResponsibility.example01; public class Main { public static void main(String[] args) { diff --git a/design-pattern/src/ChainOfResponsibility/PlusCalculator.java b/design-pattern/src/ChainOfResponsibility/example01/PlusCalculator.java similarity index 90% rename from design-pattern/src/ChainOfResponsibility/PlusCalculator.java rename to design-pattern/src/ChainOfResponsibility/example01/PlusCalculator.java index c3288c17..6fd14bcc 100644 --- a/design-pattern/src/ChainOfResponsibility/PlusCalculator.java +++ b/design-pattern/src/ChainOfResponsibility/example01/PlusCalculator.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility; +package ChainOfResponsibility.example01; public class PlusCalculator extends Calculator { diff --git a/design-pattern/src/ChainOfResponsibility/Request.java b/design-pattern/src/ChainOfResponsibility/example01/Request.java similarity index 93% rename from design-pattern/src/ChainOfResponsibility/Request.java rename to design-pattern/src/ChainOfResponsibility/example01/Request.java index 395728f3..aac32f91 100644 --- a/design-pattern/src/ChainOfResponsibility/Request.java +++ b/design-pattern/src/ChainOfResponsibility/example01/Request.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility; +package ChainOfResponsibility.example01; public class Request { diff --git a/design-pattern/src/ChainOfResponsibility/SubCalculator.java b/design-pattern/src/ChainOfResponsibility/example01/SubCalculator.java similarity index 90% rename from design-pattern/src/ChainOfResponsibility/SubCalculator.java rename to design-pattern/src/ChainOfResponsibility/example01/SubCalculator.java index aac60dae..f0efa3d1 100644 --- a/design-pattern/src/ChainOfResponsibility/SubCalculator.java +++ b/design-pattern/src/ChainOfResponsibility/example01/SubCalculator.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility; +package ChainOfResponsibility.example01; public class SubCalculator extends Calculator { diff --git a/design-pattern/src/ChainOfResponsibility2/Application.java b/design-pattern/src/ChainOfResponsibility/example02/Application.java similarity index 94% rename from design-pattern/src/ChainOfResponsibility2/Application.java rename to design-pattern/src/ChainOfResponsibility/example02/Application.java index 19fd8540..e733481b 100644 --- a/design-pattern/src/ChainOfResponsibility2/Application.java +++ b/design-pattern/src/ChainOfResponsibility/example02/Application.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility2; +package ChainOfResponsibility.example02; public class Application { public static void main(String[] args) { diff --git a/design-pattern/src/ChainOfResponsibility2/Armor.java b/design-pattern/src/ChainOfResponsibility/example02/Armor.java similarity index 94% rename from design-pattern/src/ChainOfResponsibility2/Armor.java rename to design-pattern/src/ChainOfResponsibility/example02/Armor.java index 3909dee3..733c228a 100644 --- a/design-pattern/src/ChainOfResponsibility2/Armor.java +++ b/design-pattern/src/ChainOfResponsibility/example02/Armor.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility2; +package ChainOfResponsibility.example02; public class Armor implements Defense{ diff --git a/design-pattern/src/ChainOfResponsibility2/Attack.java b/design-pattern/src/ChainOfResponsibility/example02/Attack.java similarity index 86% rename from design-pattern/src/ChainOfResponsibility2/Attack.java rename to design-pattern/src/ChainOfResponsibility/example02/Attack.java index a1f0cf94..74bf5803 100644 --- a/design-pattern/src/ChainOfResponsibility2/Attack.java +++ b/design-pattern/src/ChainOfResponsibility/example02/Attack.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility2; +package ChainOfResponsibility.example02; public class Attack { diff --git a/design-pattern/src/ChainOfResponsibility2/Defense.java b/design-pattern/src/ChainOfResponsibility/example02/Defense.java similarity index 63% rename from design-pattern/src/ChainOfResponsibility2/Defense.java rename to design-pattern/src/ChainOfResponsibility/example02/Defense.java index b7d27ded..bb489e19 100644 --- a/design-pattern/src/ChainOfResponsibility2/Defense.java +++ b/design-pattern/src/ChainOfResponsibility/example02/Defense.java @@ -1,4 +1,4 @@ -package ChainOfResponsibility2; +package ChainOfResponsibility.example02; public interface Defense { diff --git a/design-pattern/src/Observer/Application.java b/design-pattern/src/Observer/example01/Application.java similarity index 92% rename from design-pattern/src/Observer/Application.java rename to design-pattern/src/Observer/example01/Application.java index abd06ec4..95fdd316 100644 --- a/design-pattern/src/Observer/Application.java +++ b/design-pattern/src/Observer/example01/Application.java @@ -1,4 +1,4 @@ -package Observer; +package Observer.example01; public class Application { diff --git a/design-pattern/src/Observer/Button.java b/design-pattern/src/Observer/example01/Button.java similarity index 93% rename from design-pattern/src/Observer/Button.java rename to design-pattern/src/Observer/example01/Button.java index 64b36841..c91c96e7 100644 --- a/design-pattern/src/Observer/Button.java +++ b/design-pattern/src/Observer/example01/Button.java @@ -1,4 +1,4 @@ -package Observer; +package Observer.example01; public class Button { diff --git a/design-pattern/src/Observer/example02/Application.java b/design-pattern/src/Observer/example02/Application.java new file mode 100644 index 00000000..78bb32a7 --- /dev/null +++ b/design-pattern/src/Observer/example02/Application.java @@ -0,0 +1,21 @@ +package Observer.example02; + +import java.util.Observable; +import java.util.Observer; + +public class Application { + public static void main(String[] args) { + Button button = new Button(); + + button.addObserver(new Observer() { + @Override + public void update(Observable o, Object arg) { + System.out.println(o + " is Clicked"); + } + }); + + button.onClick(); + button.onClick(); + button.onClick(); + } +} diff --git a/design-pattern/src/Observer/example02/Button.java b/design-pattern/src/Observer/example02/Button.java new file mode 100644 index 00000000..d583d81f --- /dev/null +++ b/design-pattern/src/Observer/example02/Button.java @@ -0,0 +1,11 @@ +package Observer.example02; + +import java.util.Observable; + +public class Button extends Observable { + + public void onClick() { + setChanged(); + notifyObservers(); + } +}