码迷,mamicode.com
首页 > 编程语言 > 详细

java实现简单工厂模式,工厂模式

时间:2015-10-20 14:09:14      阅读:462      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

技术分享


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


java实现简单工厂模式,工厂模式

标签:

原文地址:http://my.oschina.net/kakoi/blog/519294

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!