• 技术文章 >Java >java教程

    Java 实现简单工厂模式的示例代码(图)

    黄舟黄舟2017-03-10 11:41:08原创793
    工厂模式 属于创建型模式

    简单工厂模式

    类图


    通过一个工厂类,以一个条件来创建对应的对象

    //业务功能
    public interface ICalculation {
    	double getResult(double numA, double numB);
    }


    public class CalcAdd implements ICalculation {
    
    	@Override
    	public double getResult(double numA, double numB) {
    		System.out.println("加法");
    		return numA + numB;
    	}
    
    }


    public class CalcSubtract implements ICalculation {
    
    	@Override
    	public double getResult(double numA, double numB) {
    		System.out.println("减法");
    		return numA - numB;
    	}
    
    }


    /*
     * 简单工厂模式 关注:对象的创建
     * 建立一个工厂类,对实现了同一接口的或者是存在继承关系的一些类进行实例的创建
     */
    public class Test4Simple {
    	public static void main(String[] args) {
    //		String operation = "/";
    		String operation = "+";
    //		String operation = "-";
    //		String operation = "*";
    		double numA = 182, numB = 33;
    		ICalculation createCalc = CalcSimpleFactory.createCalc(operation);
    		double result = createCalc.getResult(numA, numB);
    		System.out.println(result);
    	}
    }


    简单工厂的缺陷: 简单工厂创建产品时需要传递相应的参数,如果传递不正确就取不到对象了。

    改进:多方法创建不同产品

    类图


    public class CalcMultipleFactory {
    	
    	public static ICalculation produceAdd() {
    		return new CalcAdd();
    	}
    	
    	public static ICalculation produceSubtract() {
    		return new CalcSubtract();
    	}
    	
    	public static ICalculation produceMultiply() {
    		return new CalcMultiply();
    	}
    	
    	public static ICalculation producepide() {
    		return new Calcpide();
    	}
    }


    public class Test4Multiple {
    
    	public static void main(String[] args) {
    		double numA = 182, numB = 33;
    		
    		ICalculation createCalc = CalcMultipleFactory.produceAdd();
    		double result = createCalc.getResult(numA, numB);
    		System.out.println(result);
    		
    		createCalc = CalcMultipleFactory.produceSubtract();
    		result = createCalc.getResult(numA, numB);
    		System.out.println(result);
    		
    		createCalc = CalcMultipleFactory.produceMultiply();
    		result = createCalc.getResult(numA, numB);
    		System.out.println(result);
    		
    		createCalc = CalcMultipleFactory.producepide();
    		result = createCalc.getResult(numA, numB);
    		System.out.println(result);
    	}
    }

    以上就是Java 实现简单工厂模式的示例代码(图)的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Java ,工厂模式
    上一篇:java 单例模式的简单实现 下一篇:Java 实现抽象工厂模式的具体代码详解

    相关文章推荐

    • 动态代理的两种方式是什么• JAVA-5NIO之Selector• J2ME程序开发全方位基础讲解汇总(一)• Java基础之类和对象、单例模式、继承• 打造高性能Java应用需掌握的5大知识

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网