欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-14 21:32:42
...

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

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

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

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

 

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

 

转载于:https://my.oschina.net/kakoi/blog/519294