From bdacfe30c1bc68ae420d7d32e8f409762771ddd2 Mon Sep 17 00:00:00 2001 From: Joseph McCarthy Date: Sat, 26 Dec 2015 22:20:53 +0000 Subject: [PATCH] Added skeleton code for delegation pattern #324 --- .../delegation/simple/Controller.java | 14 +++++++++++ .../iluwatar/delegation/simple/Printer.java | 6 +++++ .../delegation/simple/PrinterController.java | 13 ++++++++++ .../simple/printers/CanonPrinter.java | 12 ++++++++++ .../simple/printers/EpsonPrinter.java | 12 ++++++++++ .../delegation/simple/printers/HPPrinter.java | 12 ++++++++++ .../iluwatar/delegation/simple/AppTest.java | 24 +++++++++++++++++++ 7 files changed, 93 insertions(+) create mode 100644 delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java create mode 100644 delegation/src/main/java/com/iluwatar/delegation/simple/Printer.java create mode 100644 delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java create mode 100644 delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java create mode 100644 delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java create mode 100644 delegation/src/main/java/com/iluwatar/delegation/simple/printers/HPPrinter.java create mode 100644 delegation/src/test/java/com/iluwatar/delegation/simple/AppTest.java diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java b/delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java new file mode 100644 index 000000000..487b827eb --- /dev/null +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/Controller.java @@ -0,0 +1,14 @@ +package com.iluwatar.delegation.simple; + +public abstract class Controller { + + private Printer printer; + + public Controller(Printer printer) { + this.printer = printer; + } + + protected Printer getPrinter() { + return printer; + } +} diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/Printer.java b/delegation/src/main/java/com/iluwatar/delegation/simple/Printer.java new file mode 100644 index 000000000..1bc0dd13d --- /dev/null +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/Printer.java @@ -0,0 +1,6 @@ +package com.iluwatar.delegation.simple; + +public interface Printer { + + void print(final String message); +} diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java b/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java new file mode 100644 index 000000000..5fb8742a3 --- /dev/null +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/PrinterController.java @@ -0,0 +1,13 @@ +package com.iluwatar.delegation.simple; + +public class PrinterController extends Controller implements Printer { + + public PrinterController(Printer printer) { + super(printer); + } + + @Override + public void print(String message) { + getPrinter().print(message); + } +} diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java new file mode 100644 index 000000000..76afd5309 --- /dev/null +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/CanonPrinter.java @@ -0,0 +1,12 @@ +package com.iluwatar.delegation.simple.printers; + +import com.iluwatar.delegation.simple.Printer; + +public class CanonPrinter implements Printer { + + @Override + public void print(String message) { + System.out.println("Canon Printer : " + message); + } + +} diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java new file mode 100644 index 000000000..cc371fd68 --- /dev/null +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/EpsonPrinter.java @@ -0,0 +1,12 @@ +package com.iluwatar.delegation.simple.printers; + +import com.iluwatar.delegation.simple.Printer; + +public class EpsonPrinter implements Printer{ + + @Override + public void print(String message) { + System.out.println("Epson Printer : " + message); + } + +} diff --git a/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HPPrinter.java b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HPPrinter.java new file mode 100644 index 000000000..7c57ee43b --- /dev/null +++ b/delegation/src/main/java/com/iluwatar/delegation/simple/printers/HPPrinter.java @@ -0,0 +1,12 @@ +package com.iluwatar.delegation.simple.printers; + +import com.iluwatar.delegation.simple.Printer; + +public class HPPrinter implements Printer { + + @Override + public void print(String message) { + System.out.println("HP Printer : " + message); + } + +} diff --git a/delegation/src/test/java/com/iluwatar/delegation/simple/AppTest.java b/delegation/src/test/java/com/iluwatar/delegation/simple/AppTest.java new file mode 100644 index 000000000..fc8d277a7 --- /dev/null +++ b/delegation/src/test/java/com/iluwatar/delegation/simple/AppTest.java @@ -0,0 +1,24 @@ +package com.iluwatar.delegation.simple; + +import com.iluwatar.delegation.simple.printers.CanonPrinter; +import com.iluwatar.delegation.simple.printers.EpsonPrinter; +import com.iluwatar.delegation.simple.printers.HPPrinter; + +public class AppTest { + + public static final String MESSAGE_TO_PRINT = "hello world"; + + public static void main(String args[]) { + Printer hpPrinter = new HPPrinter(); + Printer canonPrinter = new CanonPrinter(); + Printer epsonPrinter = new EpsonPrinter(); + + PrinterController hpPrinterController = new PrinterController(hpPrinter); + PrinterController canonPrinterController = new PrinterController(canonPrinter); + PrinterController epsonPrinterController = new PrinterController(epsonPrinter); + + hpPrinterController.print(MESSAGE_TO_PRINT); + canonPrinterController.print(MESSAGE_TO_PRINT); + epsonPrinterController.print(MESSAGE_TO_PRINT); + } +}