首页 > 其他 > 详细

设计模式--工厂模式

时间:2017-02-24 12:31:15      阅读:116      评论:0      收藏:0      [点我收藏+]

简单工厂模式学习

package com.factory;

//产品接口
public interface Product {
    void craftwork(); //制作工艺
    void type(); //产品特征
}
package com.factory;

//鲜奶实现类
public class Creamery implements Product {

    @Override
    public void craftwork() {
        System.out.println("实现类制作工艺:牛奶+除菌=鲜奶");
    }

    @Override
    public void type() {
        System.out.println("实现类产品特征:原味浓香");
    }

}
package com.factory;

//酸奶实现类
public class Yoghourt implements Product {

    @Override
    public void craftwork() {
        System.out.println("实现类制作工艺:牛奶+酵母菌+糖=酸奶");
    }

    @Override
    public void type() {
        System.out.println("实现类产品特征:酸甜可口");
    }

}
package com.factory;
//自定义异常
public class BadException extends Exception {

    public BadException(String msg){
        super(msg);
    }
}
package com.factory;
//静态工厂方法
public class StaticFactory {
    public static Product factory(String str) throws BadException{
        if(str.equalsIgnoreCase("yoghourt")){
            System.out.println("静态工厂:生产酸奶");
            return new Yoghourt();
        }else
        if(str.equalsIgnoreCase("creamery")){
            System.out.println("静态工厂:生产鲜奶");
            return new Creamery();
        }else{
            throw new BadException("没有该类型产品!");
        }
    }
}

 

测试代码:

package com.factory;
//测试类
public class Test {

    public static void main(String[] args) {
        try {
            Product y = StaticFactory.factory("Yoghourt");
            y.craftwork();
            y.type();
            Product c = StaticFactory.factory("Creamery");
            c.craftwork();
            c.type();
        } catch (BadException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

执行结果:

静态工厂:生产酸奶
实现类制作工艺:牛奶+酵母菌+糖=酸奶
实现类产品特征:酸甜可口
静态工厂:生产鲜奶
实现类制作工艺:牛奶+除菌=鲜奶
实现类产品特征:原味浓香

 

总结:

 

设计模式--工厂模式

原文:http://www.cnblogs.com/nikey/p/6437815.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!