Guest User

Untitled

a guest
Jan 21st, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.19 KB | None | 0 0
  1. package mypackage;
  2.  
  3. public class DecoyDuck extends Duck{
  4.     public DecoyDuck()
  5.     {
  6.         quackBehavior = new Quack();
  7.         flyBehavior = new FlyWithWings();
  8.     }
  9.  
  10.     public void display()
  11.     {
  12.     System.out.println("I'm a Decoy Duck!");   
  13.     }
  14. }
  15.  
  16. package mypackage;
  17.  
  18. public abstract class Duck {
  19. FlyBehavior flyBehavior;
  20. QuackBehavior quackBehavior;
  21.  
  22. public Duck(){}
  23.  
  24. public void performFly(){
  25. flyBehavior.fly();     
  26. }
  27.  
  28. public void performQuak(){
  29. quackBehavior.quack();
  30. }
  31.  
  32. public void swim(){
  33.     System.out.println("Ducks and witches float");
  34. }
  35.  
  36. public void setFlyBehavior(FlyBehavior fb)
  37. {
  38. flyBehavior = fb;  
  39. }
  40.  
  41. public void setQuackBehavior(QuackBehavior qb)
  42. {
  43.     quackBehavior = qb;
  44. }
  45. }
  46.  
  47. package mypackage;
  48.  
  49. public interface FlyBehavior {
  50. public void fly();
  51. }
  52.  
  53.  
  54. package mypackage;
  55.  
  56. public class FlyNoWay implements FlyBehavior {
  57.  
  58.     @Override
  59.     public void fly() {
  60.         System.out.println("Flying. It's not something I can do.");
  61.  
  62.     }
  63.  
  64. }
  65.  
  66.  
  67. package mypackage;
  68.  
  69. public class FlyRocketPowered implements FlyBehavior {
  70.  
  71.     @Override
  72.     public void fly() {
  73.         System.out.println("By the power of science, I'm flying with rockets!");
  74.  
  75.     }
  76.  
  77. }
  78.  
  79.  
  80. package mypackage;
  81.  
  82. public class FlyWithWings implements FlyBehavior {
  83.  
  84.     @Override
  85.     public void fly() {
  86.         System.out.println("I'm flying!");
  87.     }
  88.  
  89. }
  90.  
  91.  
  92. package mypackage;
  93.  
  94. public class MallardDuck extends Duck{
  95. public MallardDuck()
  96. {
  97.     quackBehavior = new Quack();
  98.     flyBehavior = new FlyWithWings();
  99. }
  100.  
  101. public void display()
  102. {
  103. System.out.println("I'm a Mallard Duck!"); 
  104. }
  105. }
  106.  
  107.  
  108. package mypackage;
  109.  
  110. public class MiniDuckSim {
  111.  
  112.     /**
  113.      * @param args
  114.      */
  115.     public static void main(String[] args) {
  116.         Duck mallard = new MallardDuck();
  117.         mallard.performFly();
  118.         mallard.performQuak();
  119.        
  120.         Duck model = new ModelDuck();
  121.         model.performFly();
  122.         model.performQuak();
  123.         model.setFlyBehavior(new FlyRocketPowered());
  124.         model.performFly();
  125.        
  126.        
  127.  
  128.     }
  129.  
  130. }
  131.  
  132.  
  133. package mypackage;
  134.  
  135. public class ModelDuck extends Duck{
  136.     public ModelDuck()
  137.     {
  138.         quackBehavior = new Quack();
  139.         flyBehavior = new FlyWithWings();
  140.     }
  141.  
  142.     public void display()
  143.     {
  144.     System.out.println("I'm a model Duck!");   
  145.     }
  146. }
  147.  
  148.  
  149. package mypackage;
  150.  
  151. public class MuteQuakc implements QuackBehavior {
  152.  
  153.     @Override
  154.     public void quack() {
  155.         System.out.println("<silence>");
  156.  
  157.     }
  158.  
  159. }
  160.  
  161.  
  162. package mypackage;
  163.  
  164. public class Quack implements QuackBehavior {
  165.  
  166.     @Override
  167.     public void quack() {
  168.         System.out.println("QUACK");
  169.  
  170.     }
  171.  
  172. }
  173.  
  174.  
  175. package mypackage;
  176.  
  177. public interface QuackBehavior {
  178.     public void quack();
  179. }
  180.  
  181.  
  182. package mypackage;
  183.  
  184. public class RedheadDuck extends Duck{
  185.     public RedheadDuck()
  186.     {
  187.         quackBehavior = new Quack();
  188.         flyBehavior = new FlyWithWings();
  189.     }
  190.  
  191.     public void display()
  192.     {
  193.     System.out.println("I'm a Redhead Duck!"); 
  194.     }
  195. }
  196.  
  197.  
  198. package mypackage;
  199.  
  200. public class RubberDuck extends Duck{
  201.     public RubberDuck()
  202.     {
  203.         quackBehavior = new Squeek();
  204.         flyBehavior = new FlyWithWings();
  205.     }
  206.  
  207.     public void display()
  208.     {
  209.     System.out.println("I'm a Rubber Duck!");  
  210.     }
  211. }
  212.  
  213.  
  214. package mypackage;
  215.  
  216. public class Squeek implements QuackBehavior {
  217.  
  218.     @Override
  219.     public void quack() {
  220.         System.out.println("SQUEEK");
  221.  
  222.     }
  223.  
  224. }
Add Comment
Please, Sign In to add comment