如今的农场有三种水果:Grape、Strawberry、Apple.app
一名园丁在管理整个农场,向市场提供现有的水果:ui
public class FruitGardener {
public static Fruit factory(String which)throws NoFruitException{
if(which.equalsIgnoreCase("apple")){
return new Apple();
}else if(which.equalsIgnoreCase("grape")){
return new Grape();
}else if(which.equalsIgnoreCase("strawberry")){
return new Strawberry();
}else{
throw new NoFruitException("Wrong fruit request!");
}
}
}
public class NoFruitException extends Exception {
public NoFruitException(String msg){
super(msg);
}
}
水果都是这样的.水果接口:
public interface Fruit {
//生长
void grow();
//收获
void harvest();
//种植
void plant();
}接口
苹果是这样的:it
public class Apple implements Fruit{
public void grow() {
System.out.println("Apple is growing...");
}
public void harvest() {
System.out.println("Apple has been harvested.");
}
public void plant() {
System.out.println("Apple has bean planted.");
}
}
葡萄是这样的:
public class Grape implements Fruit{
public void grow() {
System.out.println("Grape is growing...");
}
public void harvest() {
System.out.println("Grape has bean harvested.");
}
public void plant() {
System.out.println("Grape has bean planted.");
}
}io
草莓是这样的:
public class Strawberry implements Fruit{
public void grow() {
System.out.println("Strawberry is growing...");
}
public void harvest() {
System.out.println("Strawberry has bean harvested.");
}
public void plant() {
System.out.println("Strawberry has bean planted.");
}
}
市场是这样的:
try{
FruitGardener.factory("grape");
FruitGardener.factory("Apple");
FruitGardener.factory("strawberry");
}catch(NoFruitException ex){
}
最近香蕉价格涨停,可是这个园丁不会种,老板考虑是换一个园丁或者让这个园丁去osc培训种香蕉呢?不管如何加班是必定的了 class