File tree Expand file tree Collapse file tree
main/java/com/iluwatar/delegation/simple
test/java/com/iluwatar/delegation/simple Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple ;
2+
3+ public abstract class Controller <T extends Printer > {
4+
5+ private Printer printer ;
6+
7+ public Controller (Printer printer ) {
8+ this .printer = printer ;
9+ }
10+
11+ protected Printer getPrinter () {
12+ return printer ;
13+ }
14+ }
Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple ;
2+
3+ public interface Printer {
4+
5+ void print (final String message );
6+ }
Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple ;
2+
3+ public class PrinterController extends Controller implements Printer {
4+
5+ public PrinterController (Printer printer ) {
6+ super (printer );
7+ }
8+
9+ @ Override
10+ public void print (String message ) {
11+ getPrinter ().print (message );
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple .printers ;
2+
3+ import com .iluwatar .delegation .simple .Printer ;
4+
5+ public class CanonPrinter implements Printer {
6+
7+ @ Override
8+ public void print (String message ) {
9+ System .out .println ("Canon Printer : " + message );
10+ }
11+
12+ }
Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple .printers ;
2+
3+ import com .iluwatar .delegation .simple .Printer ;
4+
5+ public class EpsonPrinter implements Printer {
6+
7+ @ Override
8+ public void print (String message ) {
9+ System .out .println ("Epson Printer : " + message );
10+ }
11+
12+ }
Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple .printers ;
2+
3+ import com .iluwatar .delegation .simple .Printer ;
4+
5+ public class HPPrinter implements Printer {
6+
7+ @ Override
8+ public void print (String message ) {
9+ System .out .println ("HP Printer : " + message );
10+ }
11+
12+ }
Original file line number Diff line number Diff line change 1+ package com .iluwatar .delegation .simple ;
2+
3+ import com .iluwatar .delegation .simple .printers .CanonPrinter ;
4+ import com .iluwatar .delegation .simple .printers .EpsonPrinter ;
5+ import com .iluwatar .delegation .simple .printers .HPPrinter ;
6+
7+ public class AppTest {
8+
9+ public static final String MESSAGE_TO_PRINT = "hello world" ;
10+
11+ public static void main (String args []) {
12+ Printer hpPrinter = new HPPrinter ();
13+ Printer canonPrinter = new CanonPrinter ();
14+ Printer epsonPrinter = new EpsonPrinter ();
15+
16+ PrinterController hpPrinterController = new PrinterController (hpPrinter );
17+ PrinterController canonPrinterController = new PrinterController (canonPrinter );
18+ PrinterController epsonPrinterController = new PrinterController (epsonPrinter );
19+
20+ hpPrinterController .print (MESSAGE_TO_PRINT );
21+ canonPrinterController .print (MESSAGE_TO_PRINT );
22+ epsonPrinterController .print (MESSAGE_TO_PRINT );
23+ }
24+ }
You can’t perform that action at this time.
0 commit comments