设计模式之工厂模式

来源:互联网 发布:淘宝店铺新品上架 编辑:程序博客网 时间:2024/06/03 19:13
工厂模式的意图:定义一个接口来创建对象,但是让子类来决定哪些类需要被实例化。工厂方法把实例化的工作推迟到子类中去实现。工厂模式的适用范围:1,有一组类似的对象需要创建。2,在编码时不能预见需要创建那种类的实例。3,系统需要考虑扩展性,不应该依赖于产品类实例如何被创建,组合和表达的细节。
/* * 水果接口 */public interface Fruit {void makeFruit();}
/* * 水果工厂,只要生产水果,就在工厂创建 */public class FruitFactory{private String className;public FruitFactory(String className){this.className = className;}public Fruit makeNewInstance() throws InstantiationException, IllegalAccessException, ClassNotFoundException{//通过类名创建Fruit clazz = (Fruit)Class.forName(className).newInstance();return clazz;}}

/* * 生产一个苹果 */public class Apple implements Fruit{@Overridepublic void makeFruit() { System.out.println("苹果诞生");}}
/* * 水果工厂测试类 */public class FactoryTest {public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {//通过工厂创建一个苹果,传入类名,类名可以用properties文件对应起来FruitFactory ff = new FruitFactory(Apple.class.getName());//得到苹果实例Fruit f = ff.makeNewInstance();f.makeFruit();}}

苹果诞生



原创粉丝点击