【Java】简单工厂和抽象工厂代码

Java简单工厂和抽象工厂

简单工厂模式

package cn.wingfly.bean;  
  
interface Fruit {  
    void eat();  
}  
class Orange implements Fruit{  
    @Override  
    public void eat() {  
        System.out.println("  吃橘子    ");  
    }  
}  
class Apple implements Fruit{  
    @Override  
    public 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();  
    }  
}


赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏