首頁  >  文章  >  Java  >  java實作簡單工廠模式

java實作簡單工廠模式

高洛峰
高洛峰原創
2016-12-15 14:20:091533瀏覽

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

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

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

java實作簡單工廠模式

//新建一个简单工厂类 SimpleFactory.javapublic 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.javainterface 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.javainterface 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();
				
			
	}

java

相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn