Guest User

Untitled

a guest
Jul 17th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. interface Printer {
  2. void print(Message message);
  3. }
  4.  
  5. class Message {
  6. private String message;
  7.  
  8. public Message(String message) {
  9. this.message = message;
  10. }
  11.  
  12. public void print(Printer printer) {
  13. printer.print(this);
  14. }
  15.  
  16. public String toString() {
  17. return message;
  18. }
  19. }
  20.  
  21. abstract class AbstractPrinterFactory {
  22. public static AbstractPrinterFactory getFactory(){
  23. return new SystemOutPrinterFactory();
  24. }
  25.  
  26. public abstract Printer getPrinter();
  27. }
  28.  
  29. class SystemOutPrinterFactory extends AbstractPrinterFactory {
  30. public Printer getPrinter() {
  31. return new SystemOutPrinter();
  32. }
  33. }
  34.  
  35. class SystemOutPrinter implements Printer {
  36. public void print(Message message) {
  37. System.out.println(message);
  38. }
  39. }
  40.  
  41. public class HelloWorld {
  42. public static void main(String[] args) {
  43. Message message = new Message("Hello, World!");
  44. AbstractPrinterFactory factory = AbstractPrinterFactory.getFactory();
  45. Printer printer = factory.getPrinter(); message.print(printer);
  46. }
  47. }
Add Comment
Please, Sign In to add comment