Animal.java
package strategy;
public interface Animal {
public void eat();
}
Cat.java
package strategy;
public class Cat implements Animal {
@Override
public void eat() {
System.out.println("I eat fish!");
}
}
Dog.java
package strategy;
public class Dog implements Animal {
@Override
public void eat() {
System.out.println("I eat bone!");
}
}
Environment.java
package strategy;
public class Environment {
private Animal animal;
public Environment(Animal animal) {
super();
this.animal = animal;
}
public void eat() {
animal.eat();
}
public Animal getAnimal() {
return animal;
}
public void setAnimal(Animal animal) {
this.animal = animal;
}
}
Test.java
package strategy;
public class Test {
public static void main(String[] args) {
Environment environment1 = new Environment(new Cat());
environment1.eat();
Environment environment2 = new Environment(new Dog());
environment2.eat();
}
}