Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mypackage;
- public class DecoyDuck extends Duck{
- public DecoyDuck()
- {
- quackBehavior = new Quack();
- flyBehavior = new FlyWithWings();
- }
- public void display()
- {
- System.out.println("I'm a Decoy Duck!");
- }
- }
- package mypackage;
- public abstract class Duck {
- FlyBehavior flyBehavior;
- QuackBehavior quackBehavior;
- public Duck(){}
- public void performFly(){
- flyBehavior.fly();
- }
- public void performQuak(){
- quackBehavior.quack();
- }
- public void swim(){
- System.out.println("Ducks and witches float");
- }
- public void setFlyBehavior(FlyBehavior fb)
- {
- flyBehavior = fb;
- }
- public void setQuackBehavior(QuackBehavior qb)
- {
- quackBehavior = qb;
- }
- }
- package mypackage;
- public interface FlyBehavior {
- public void fly();
- }
- package mypackage;
- public class FlyNoWay implements FlyBehavior {
- @Override
- public void fly() {
- System.out.println("Flying. It's not something I can do.");
- }
- }
- package mypackage;
- public class FlyRocketPowered implements FlyBehavior {
- @Override
- public void fly() {
- System.out.println("By the power of science, I'm flying with rockets!");
- }
- }
- package mypackage;
- public class FlyWithWings implements FlyBehavior {
- @Override
- public void fly() {
- System.out.println("I'm flying!");
- }
- }
- package mypackage;
- public class MallardDuck extends Duck{
- public MallardDuck()
- {
- quackBehavior = new Quack();
- flyBehavior = new FlyWithWings();
- }
- public void display()
- {
- System.out.println("I'm a Mallard Duck!");
- }
- }
- package mypackage;
- public class MiniDuckSim {
- /**
- * @param args
- */
- public static void main(String[] args) {
- Duck mallard = new MallardDuck();
- mallard.performFly();
- mallard.performQuak();
- Duck model = new ModelDuck();
- model.performFly();
- model.performQuak();
- model.setFlyBehavior(new FlyRocketPowered());
- model.performFly();
- }
- }
- package mypackage;
- public class ModelDuck extends Duck{
- public ModelDuck()
- {
- quackBehavior = new Quack();
- flyBehavior = new FlyWithWings();
- }
- public void display()
- {
- System.out.println("I'm a model Duck!");
- }
- }
- package mypackage;
- public class MuteQuakc implements QuackBehavior {
- @Override
- public void quack() {
- System.out.println("<silence>");
- }
- }
- package mypackage;
- public class Quack implements QuackBehavior {
- @Override
- public void quack() {
- System.out.println("QUACK");
- }
- }
- package mypackage;
- public interface QuackBehavior {
- public void quack();
- }
- package mypackage;
- public class RedheadDuck extends Duck{
- public RedheadDuck()
- {
- quackBehavior = new Quack();
- flyBehavior = new FlyWithWings();
- }
- public void display()
- {
- System.out.println("I'm a Redhead Duck!");
- }
- }
- package mypackage;
- public class RubberDuck extends Duck{
- public RubberDuck()
- {
- quackBehavior = new Squeek();
- flyBehavior = new FlyWithWings();
- }
- public void display()
- {
- System.out.println("I'm a Rubber Duck!");
- }
- }
- package mypackage;
- public class Squeek implements QuackBehavior {
- @Override
- public void quack() {
- System.out.println("SQUEEK");
- }
- }
Add Comment
Please, Sign In to add comment