java實現簡單工廠模式,工廠模式

一個農場公司專門負責培育各類水果,在這個系統中的水果有葡萄,草莓和蘋果,其類圖如圖所示。 請按如下要求編寫程序:java

1. 應用簡單工廠方法模式,在主程序中根據鍵盤輸入的水果名稱來完成其生長狀態的描述。app

2  應用工廠方法模式,在主程序中根據鍵盤輸入的水果名稱來完成其生長狀態的描述ide

 

//新建一個簡單工廠類 SimpleFactory.java
public class SimpleFactory{
        //    此處須要定義 static 類型,在客戶端 類名。方法調用
    public staitc Fruit getFruitObj(String type){
        Fruit obj = null;
     if(type.equals("apple")){
		obj = (Fruit) new Apple();
	}else if(type.equals("straw")){
		obj= (Fruit) new Straw();
	}else if(type.equals("grape")){
		obj = (Fruit) new Grape();
	}
	return obj;
    }
}
//實現水果類 Fruit.java
interface Fruit{
    void plant();        //定義種植方法
    void grow();           //定義生長方法
    void harvest();
}
// 實現蘋果類 Apple.java
//此處草莓和葡萄同理,都實現接口FRUIT 
public class Apple implements Fruit{
    @Override
	public void plant() {
		// TODO Auto-generated method stub
		System.out.print("種植了蘋果");
		
	}

	@Override
	public void grow() {
		// TODO Auto-generated method stub
		System.out.print("蘋果生長了");
	}

	@Override
	public void harvest() {
		// TODO Auto-generated method stub
		System.out.print("蘋果結果了");
		
	}
}


//客戶端接口
public class main{
    public staic void main(String args[]){
     Fruit fu =SimpleFactory.getfruitobj("apple");
		fu.plant();
		fu.grow();
		fu.harvest();
    }
    
}

工廠模式實現函數

/實現水果類 Fruit.java
interface Fruit{
    void plant();        //定義種植方法
    void grow();           //定義生長方法
    void harvest();
}
// 定義一個抽象工廠方法
public abstract class Factory {
	public abstract Fruit getapple();
	public static Factory getFruitFactory(Stri ng type){
		Factory f = null;
		if(type.equals("apple")){
			f=new AppleFactory();
			f.getapple();
		}
		return f;
		
	}
//定義一個蘋果的工廠
public class AppleFactory extends Factory{
public Apple getapple(){
        //返回蘋果的對象
	return new Apple();
}
//定義一個蘋果。與上面簡單工廠同
public class Apple implements Fruit{

	@Override
	public void plant() {
		// TODO Auto-generated method stub
		System.out.print("123");
	}

	@Override
	public void grow() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void harvest() {
		// TODO Auto-generated method stub
		
	}

}
//定義主函數
public class client {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//執行 方法
		Fruit f =(Fruit) Factory.getFruitFactory("apple");
		f.plant();
		f.grow();
		f.harvest();
				
			
	}
相關文章
相關標籤/搜索