工厂方法FactoryMethod

工厂方法FactoryMethod

public interface Fruit {
	
	public void plant();
	
	public void grow();
	
	public void harvest();

}
public class Apple implements Fruit {
	
	/**
	 * 树龄
	 */
	private int treeAge;

	public int getTreeAge() {
		return treeAge;
	}

	public void setTreeAge(int treeAge) {
		this.treeAge = treeAge;
	}

	@Override
	public void plant() {
		System.out.println("Apple has been planted.");
	}

	@Override
	public void grow() {
		System.out.println("Apple is growing...");
	}

	@Override
	public void harvest() {
		System.out.println("Apple has been harvested.");
	}

}
public class Grape implements Fruit {

	/**
	 * 葡萄籽
	 */
	private boolean seedless;

	public boolean isSeedless() {
		return seedless;
	}

	public void setSeedless(boolean seedless) {
		this.seedless = seedless;
	}

	@Override
	public void plant() {
		System.out.println("Grape has been planted.");
	}

	@Override
	public void grow() {
		System.out.println("Grape is growing...");
	}

	@Override
	public void harvest() {
		System.out.println("Grape has been harvested.");
	}

}
public class Strawberry implements Fruit {

	@Override
	public void plant() {
		System.out.println("Strawberry has been planted.");
	}

	@Override
	public void grow() {
		System.out.println("Strawberry is growing...");
	}

	@Override
	public void harvest() {
		System.out.println("Strawberry has been harvested.");
	}

}
public interface FruitGardener {
	
	public Fruit factory();

}
public class AppleGardener implements FruitGardener {

	@Override
	public Fruit factory() {
		return new Apple();
	}

}
public class GrapeGradener implements FruitGardener {

	@Override
	public Fruit factory() {
		return new Grape();
	}

}
public class StrawberryGradener implements FruitGardener {

	@Override
	public Fruit factory() {
		return new Strawberry();
	}

}
public class TestFactoryMethod {
	
	public static void main(String[] args) {
		FruitGardener appleGardener = new AppleGardener();
		Apple apple = (Apple) appleGardener.factory();
		apple.plant();
		apple.grow();
		apple.harvest();
	}

}

猜你喜欢

转载自injavawetrust.iteye.com/blog/2308551