• 美国发起贸易战,我们要让世界知道美元、美债并不可靠 2019-06-05
  • 紫光阁中共中央国家机关工作委员会 2019-05-31
  • 监察体制改革后 湘西半年72名公职人员主动交代问题 2019-05-12
  • 媒体宣传报道重庆日报 王国平:扮靓重庆两江四岸” 让城市有机更新 2019-04-26
  • 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-16
  • 14名消防员日巡逻28公里 洗冷水澡 2019-04-10
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-04-10
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-04-01
  • 候选企业:中国石油呼和浩特石化公司 2019-03-26
  • 航天员沙漠野外生存训练完美收官!为第一天团打call 2019-03-25
  • 请问,建立市场经济后,原计划经济哪里去?改革后,我们还在实行计划经济,为何没有提及? 2019-03-25
  • 构建年轻干部梯次培养链 2019-03-19
  • 孙实的专栏作者中国国家地理网 2019-03-15
  • 湖南师范大学举行研究阐释党的十九大精神国家社科基金重大专项学术研讨会 2019-03-15
  • [雷人]蠢货!土地处于不同的城市和地段,关联的资源不一样,价值也不一样。不然给咱俩同样面积的土地,咱的在北上广深,你的在边远山区,你干么? 2019-03-08
  • 频道栏目
    神奇公式秒杀全国11选5 > 程序开发 > 软件开发 > Java > 正文
    设计模式学习之工厂模式实例解析
    2018-07-27 13:52:28         来源:咸鱼塘  
    收藏   我要投稿

    简介

    神奇公式秒杀全国11选5 www.2zfa.com 工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑使用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量。

    工厂模式和简单工厂的区别

    我们在简单工厂中可以发现,在我们需要添加一个新的工厂的时候需要修改原来的选择分支,这违背了类的开放性和封闭性原则,所以对简单工厂进一步抽象可得工厂模式。

    简单工厂链接

    工厂模式???Demo:计算器)

    运算类

    public abstract class Operation {
        public double number_A = 0;
        public double number_B = 0;
        public abstract double GetResult();
    }
    class OperationAdd extends Operation{
    
        @Override
        public double GetResult() {
            return number_A+number_B;
        }
    
    }
    class OperationSub extends Operation{
    
        @Override
        public double GetResult() {
            return number_A-number_B;
        }
    
    }
    class OperationMul extends Operation{
    
        @Override
        public double GetResult() {
            return number_A*number_B;
        }
    
    }
    class OperationDiv extends Operation{
    
        @Override
        public double GetResult() {
            if(number_B==0)
            {
                System.out.println("被除数不能为0");
                return -1;
            }
            return number_A/number_B;
        }
    
    }

    工厂接口

    public interface Factory {
        public Operation GetOperation();
    }

    工厂实现

    class OperationAddFactory implements Factory{
    
        @Override
        public Operation GetOperation() {
            return new OperationAdd();
        }
    }
    
    class OperationDivFactory implements Factory{
    
        @Override
        public Operation GetOperation() {
            return new OperationDiv();
        }
    }
    
    class OperationMulFactory implements Factory{
    
        @Override
        public Operation GetOperation() {
            return new OperationMul();
        }
    }
    
    class OperationSubFactory implements Factory{
    
        @Override
        public Operation GetOperation() {
            return new OperationSub();
        }
    }
    

    使用方法

    public class Main {
        public static void main(String[] args) {
            OperationAddFactory operationAddFactory = new OperationAddFactory();
            Operation operation = operationAddFactory.GetOperation();
            operation.number_A=2;
            operation.number_B=1;
            System.out.println(operation.GetResult());
        }
    }
    

    可以看出其与简单工厂的区别就在于取消了分支,而是选用了新创建一个类,这种方法虽然加大了开发量,但是提高了程序的可维护性。

    这里写图片描述

    点击复制链接 与好友分享!回本站首页
    上一篇:java线程方法之join简单总结(代码实例)
    下一篇:java关于Annotation“注解”的实例解析
    相关文章
    图文推荐
    点击排行

    关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 神奇公式秒杀全国11选5

    版权所有: 神奇公式秒杀全国11选5--致力于做实用的IT技术学习网站

  • 美国发起贸易战,我们要让世界知道美元、美债并不可靠 2019-06-05
  • 紫光阁中共中央国家机关工作委员会 2019-05-31
  • 监察体制改革后 湘西半年72名公职人员主动交代问题 2019-05-12
  • 媒体宣传报道重庆日报 王国平:扮靓重庆两江四岸” 让城市有机更新 2019-04-26
  • 我相信“交警雨中护送高考生”是真,“交警雨中护送高考生”反被该高考生家长投诉是假。 2019-04-16
  • 14名消防员日巡逻28公里 洗冷水澡 2019-04-10
  • 靶壕有了“蓝军”,百发百中的“神枪手”练起来 2019-04-10
  • 不是秀强大了,别人就会来做朋友,这逻辑不对 2019-04-01
  • 候选企业:中国石油呼和浩特石化公司 2019-03-26
  • 航天员沙漠野外生存训练完美收官!为第一天团打call 2019-03-25
  • 请问,建立市场经济后,原计划经济哪里去?改革后,我们还在实行计划经济,为何没有提及? 2019-03-25
  • 构建年轻干部梯次培养链 2019-03-19
  • 孙实的专栏作者中国国家地理网 2019-03-15
  • 湖南师范大学举行研究阐释党的十九大精神国家社科基金重大专项学术研讨会 2019-03-15
  • [雷人]蠢货!土地处于不同的城市和地段,关联的资源不一样,价值也不一样。不然给咱俩同样面积的土地,咱的在北上广深,你的在边远山区,你干么? 2019-03-08