`
hnuxbl
  • 浏览: 8356 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式--简单工厂模式

 
阅读更多

从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

 

实例:面向对象编程实现两个数的四则运算

 

运算父类:Operation.java

package factory;

public abstract class Operation {
	
	public abstract double getResult();
	
	
	public double getNumberA() {
		return numberA;
	}
	public void setNumberA(double numberA) {
		this.numberA = numberA;
	}
	public double getNumberB() {
		return numberB;
	}
	public void setNumberB(double numberB) {
		this.numberB = numberB;
	}


	protected double numberA = 0;
	protected double numberB = 0;
}

运算子类:OperationAdd.java

 

package factory;

public class OperationAdd extends Operation {

	@Override
	public double getResult() {
		// TODO Auto-generated method stub
		return numberA + numberB;
	}

}

 

运算子类:OperationSub.java

 

package factory;

public class OperationSub extends Operation {

	@Override
	public double getResult() {
		// TODO Auto-generated method stub
		return numberA - numberB;
	}

}
 

 

运算子类:OperationMul.java

 

package factory;

public class OperationMul extends Operation {

	@Override
	public double getResult() {
		// TODO Auto-generated method stub
		return numberA * numberB;
	}

}
 

 

运算子类:OperationDiv.java

 

package factory;

public class OperationDiv extends Operation {

	@Override
	public double getResult() {
		// TODO Auto-generated method stub
		double result = 0;
		try {
			result = numberA / numberB;
		} catch (ArithmeticException e) {
			System.out.println("除数不能为0");
		}
		return result;
	}

}
 

工厂类:OperationFactory.java

 

package factory;

public class OperationFactory {
	public static Operation createOperation(String operator) {
		Operation operation = null;
		
		if (operator.equals("+")) {
			operation = new OperationAdd();
		} else if (operator.equals("-")) {
			operation = new OperationSub();
		} else if (operator.equals("*")) {
			operation = new OperationMul();
		} else if (operator.equals("/")) {
			operation = new OperationDiv();
		}
		
		return operation;
	}
}
 

Main函数

 

package factory;

import java.util.Scanner;

public class Main {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		double numberA;
		double numberB;
		String operator;
		try {
			System.out.println("请输入数字A:");
			numberA = in.nextDouble();
			System.out.println("请输入运算符合(+、-、*、/):");
			operator = in.next();
			System.out.println("请输入数字B:");
			numberB = in.nextDouble();
			
			Operation operation = OperationFactory.createOperation(operator);
			operation.setNumberA(numberA);
			operation.setNumberB(numberB);
			System.out.println("结果是:" + operation.getResult());
		} catch (Exception e) {
			System.out.println("输入错误:" + e.getMessage());
		}
	}

}
分享到:
评论

相关推荐

    c++设计模式-工厂方法模式

    描述中的“创建型模式-工厂方法模式-最简单的源码-qt工程”表明,这个压缩包可能包含了一个基于Qt框架的C++项目,该项目展示了工厂方法模式的简单应用。Qt是一个跨平台的应用程序开发框架,广泛用于GUI编程,但也...

    简单工厂模式-工厂方法模式-抽象工厂模式

    在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...

    java设计模式----抽象工厂模式

    java设计模式----抽象工厂模式,简单工厂模式代码 代码内部

    设计模式----简单工厂模式

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,使得代码在创建对象时更加灵活,同时也隐藏了对象的创建细节。在这个模式中,一个专门的工厂类负责创建特定类型的对象,而...

    北风网-设计模式-简单工厂模式ppt

    简单工厂模式是面向对象设计模式中的一种,它属于创建型模式,主要解决的是在系统中如何创建对象的问题。设计模式是软件开发中的经验总结,旨在提高代码的可重用性、可读性和可维护性。 在简单工厂模式中,一个工厂...

    一例读懂设计模式-单例模式、简单工厂模式.zip

    本资源“一例读懂设计模式-单例模式、简单工厂模式.zip”旨在帮助初学者通过实例深入理解这两种重要设计模式:单例模式和简单工厂模式。以下是关于这两个模式的详细讲解。 1. **单例模式**: 单例模式是一种限制类...

    设计模式-工厂模式

    工厂模式是设计模式中的一个基础且重要的部分,它属于创建型设计模式,主要用于封装对象的创建过程,使得客户端不必关心具体的实现细节,提高了代码的可扩展性和可维护性。 工厂模式主要有三种形式:简单工厂模式、...

    java设计模式--工厂模式

    Java设计模式中的工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。工厂模式的核心思想是将对象的创建过程封装起来,使得创建过程独立于使用过程,从而提高了代码的可扩展性和可维护性。在HeadFirst...

    设计模式-简单工厂源码

    C++设计模式-创建型模式-简单工厂模式源码

    设计模式-简单工厂模式-例题

    ### 设计模式——简单工厂模式解析与应用实例 #### 一、简单工厂模式概述 简单工厂模式(Simple Factory Pattern)是一种常用的创建型设计模式。它提供了一种方式来封装对象的创建过程,使得整个系统更加灵活,...

    设计模式-工厂方法模式

    工厂方法模式是设计模式中的创建型模式,它提供了一种创建对象的最佳方式。在这个模式中,一个类(称为工厂类)不再直接实例化具体的产品,而是定义一个接口或抽象类,由子类来决定实例化哪一个类。这样做的好处在于...

    设计模式----工厂模式

    1. **简单工厂模式**(Simple Factory Pattern):由一个静态方法或单例类负责创建对象,适用于对象种类较少且不会频繁变动的情况。 2. **工厂方法模式**(Factory Method Pattern):定义一个创建对象的接口,让...

    设计模式--工厂模式java例子

    在这些模式中,工厂模式尤为突出,它是一种创建型设计模式,为对象的创建提供了抽象接口,使得代码无需直接实例化具体类,而是通过工厂方法来创建对象。 在Java编程语言中,工厂模式的应用广泛且实用。它主要分为三...

    设计模式-工厂模式 Java源码

    在Java编程语言中,工厂模式通常分为简单工厂模式、工厂方法模式和抽象工厂模式三种类型。这些模式都是围绕着一个中心思想:将对象的实例化过程封装起来,使代码更加灵活且易于维护。 1. **简单工厂模式**: 简单...

    设计模式-简单工厂模式

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了系统与具体创建对象之间的耦合度。在这个模式中,有一个名为“工厂”的类,负责创建对象,客户端通过调用工厂的方法...

    java设计模式-工厂模式

    Java设计模式中的工厂模式是一种创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当客户端请求创建一个产品对象时,它不会直接创建,而是调用一个工厂对象来完成创建工作。这种模式的核心在于封装了对象...

    3.java设计模式-创建者模式-抽象工厂模式.pdf

    简单工厂模式则是创建型设计模式的另一种,它提供一个创建对象的接口,但是让子类决定实例化哪一个类。它负责创建所有可能的类的实例,一般被用来创建某一类产品。 在上述组装电脑的场景下,简单工厂模式可以帮助...

Global site tag (gtag.js) - Google Analytics