java实现简单工厂模式

高洛峰
高洛峰 原创
2016-12-15 14:20:09 1114浏览

一个农场公司专门负责培育各种水果,在这个系统中的水果有葡萄,草莓和苹果,其类图如图所示。 请按以下要求编写程序:

1. 应用简单工厂方法模式,在主程序中根据键盘输入的水果名称来完成其生长状态的描述。

2 应用工厂方法模式,在主程序中根据键盘输入的水果名称来完成其生长状态的描述

工厂方法模式

//新建一个简单工厂类 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核实处理。