设计模式---简单工场模式

使用静态工场模式,就是通过给工场提出对应的要求,通过调用工场的对应的静态方法来创建我们所需要的对象,工场的内部实现可以调用构造方法也可以通过反射来实现

如下:首先定义抽象类Food,它有二个实现类Rice和Apple,

package com.zcj. factorypattern;

public abstract class Food {
    public abstract void print();
} 
package com.zcj.staticpattern;
public class Rice extends Food {

	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("i am rice");
	}

}
package com.zcj.staticpattern<span style="font-family: Arial, Helvetica, sans-serif;">;</span>

public class Apple extends Food{

	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("i am apple");
	}

}
下面是工场的定义:

package com.zcj.staticfactorypattern;

public class FoodFactory {
    public static Food createFood(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
    	if(type=="rice"){
    		return (Food) Class.forName("com.zcj.abstracfactorypattern.Rice").newInstance();
    	}
    	else{
    		return (Food) Class.forName("com.zcj.abstracfactorypattern.Apple").newInstance();
    	}
    }
}
最下面是我们的测试程序:

package com.zcj.staticfactorypattern;

public class StaticFactoryTest {
   public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
	  Food food  =FoodFactory.createFood("apple");
	  food.print();
   }
}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值