简单工厂和抽象工厂

来源:互联网 发布:论大数据的利与弊 编辑:程序博客网 时间:2024/04/29 00:03

查看原文:http://www.ibloger.net/article/14.html


package cn.wingfly.bean;interface Fruit {void eat();}class Orange implements Fruit{@Overridepublic void eat() {System.out.println("  吃橘子    ");}}class Apple implements Fruit{@Overridepublic void eat() {System.out.println("  吃苹果    ");}}/** * 简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例,它是工厂模式家族最简单的模式 *  * 不适合对象扩展(若要创建其他水果类,必须修改工厂方法) *  * 工厂类作用:隐含式创建对象,降低代码的耦合性 */public class SimpleFactory {public static Fruit createFruit(String name){Fruit fruit = null;switch (name) {case "Orange" :fruit = new Orange();break;case "Apple" :fruit = new Apple();break;default :break;}return fruit;}}


package cn.wingfly.bean;/** * 抽象工厂模式:可以灵活创建未知对象,而不用修改工厂方法(不必指定产品的具体形态的情况下,创建多个产品族的对象) *  * 只能创建某一类接口类型的对象(如:只能创建水果类对象,不能创建汽车类对象) */public class AbstractFactory {public static Fruit createFruit(String name){Fruit fruit = null;try {fruit = (Fruit) Class.forName(name).newInstance();} catch (Exception e) {e.printStackTrace();}return fruit;}public static void main(String[] args) {Fruit fruit = AbstractFactory.createFruit("cn.wingfly.bean.Orange");fruit.eat();}}



0 0
原创粉丝点击