`
darezhong
  • 浏览: 9148 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式学习之工厂方法模式

阅读更多

1.名词解释

工厂方法模式,定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

 

2.代码示例

工厂接口
package DesignPattern.FactoryMethodPattern;

public interface IFactory {
	
	public Operation createOperation() ;
}

 

加法工厂
package DesignPattern.FactoryMethodPattern;

public class AddFactory implements IFactory {

	@Override
	public Operation createOperation() {
		return new AddOperation();
	}

}

 

乘法工厂
package DesignPattern.FactoryMethodPattern;

public class MulFactory implements IFactory {

	@Override
	public Operation createOperation() {
		return new MulOperation();
	}
}

 

package DesignPattern.FactoryMethodPattern;

public class Operation {

	private double numberA = 0.0d;
	private double numberB = 0.0d;
	
	public void setNumberA(double d) {
		this.numberA = d;
	}
	
	public double getNumberA() {
		return this.numberA;
	}
	
	public void setNumberB(double d) {
		this.numberB = d;
	}
	
	public double getNumberB() {
		return this.numberB;
	}
	
	public double getResult() {
		return 0.0;
	}
}

 

加法处理类
package DesignPattern.FactoryMethodPattern;

public class AddOperation extends Operation {

	public double getResult() {
		return super.getNumberA() + super.getNumberB();
	}
}

 

乘法处理类
package DesignPattern.FactoryMethodPattern;

public class MulOperation extends Operation{

	public double getResult() {
		return super.getNumberA() * super.getNumberB();
	}
}

 

 

主控程序
package DesignPattern.FactoryMethodPattern;

public class Client {

	public static void main(String[] args) {
		IFactory factory = new AddFactory();
		Operation operation = factory.createOperation();
		double numberA = 2;
		double numberB = 12.9;
		operation.setNumberA(numberA);
		operation.setNumberB(numberB);
		double result = operation.getResult();
		System.out.println(result);
		
		factory = new MulFactory();
	    operation = factory.createOperation();
	    operation.setNumberA(numberA);
		operation.setNumberB(numberB);
	    result = operation.getResult();
	    System.out.println(result);
	}
}

 

分享到:
评论

相关推荐

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    在给定的资源中,"设计模式交流之工厂模式-shannonxu-2014-10-24.pptx"可能是详细的PPT讲解,涵盖了这些模式的概念、结构、优缺点以及实际应用案例。而"Factory"可能是一个代码示例,展示了工厂模式的具体实现,包括...

    java设计模式学习之工厂方法模式

    主要介绍了java设计模式学习之工厂方法模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    设计模式——工厂方法模式

    工厂方法模式是面向对象设计模式中的一种,它属于创建型模式,主要解决的是当系统需要创建的对象具有多种类型,而具体创建哪种类型的对象在运行时才能确定的问题。在这个压缩包中,`FactoryMethod`可能包含了Java...

    设计模式C++学习之工厂方法模式(Factory Method)

    设计模式C++学习之工厂方法模式(Factory Method)

    设计模式工厂方法模式PPT学习教案.pptx

    "设计模式工厂方法模式PPT学习教案" 本学习教案旨在讲解设计模式中的工厂方法模式(Factory Method),通过学习本教案,学生将掌握工厂方法模式的定义、结构、实例、分析和应用。 模式动机与定义 在软件设计中,...

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

    工厂方法模式是面向对象设计模式中的一个创建型模式,它提供了一种封装对象创建过程的方式,使得具体的对象创建过程可以延迟到子类中进行。在C++编程中,工厂方法模式广泛应用于各种软件设计中,因为它能有效地解耦...

    设计模式-工厂方法模式

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

    设计模式资料之工厂设计模式

    总结来说,这份“设计模式资料之工厂设计模式”可能会涵盖工厂模式的基本概念、分类、作用,尤其是重点讲解抽象工厂模式的原理、应用场景及实现方式。通过学习这些内容,开发者将能更好地理解和运用设计模式,提升...

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

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

    设计模式之工厂方法

    工厂方法(Factory Method)是设计模式中的一员,属于创建型模式,它的核心思想是定义一个用于创建对象的接口,让子类决定实例化哪一个类。这个接口就是工厂方法,让子类决定实例化哪一个类,工厂方法让类的实例化...

    设计模式(简单工厂和工厂方法C++版)Demo程序

    本Demo程序主要涵盖了两种常用的创建型设计模式——简单工厂模式(Simple Factory)和工厂方法模式(Factory Method)。这两种模式都是用来创建对象,但它们在灵活性和抽象程度上有所不同。 简单工厂模式是一种静态...

    设计模式单例模式和工厂模式综合应用

    "设计模式单例模式和工厂模式综合应用"的主题聚焦于两种常用的设计模式:单例模式和工厂模式,并探讨它们如何协同工作来实现高效、灵活的代码结构。这个主题尤其适用于Java编程语言,因为Java的面向对象特性使得设计...

    深入浅出设计模式之工厂模式

    根据提供的标题“深入浅出设计模式之工厂模式”与描述“将《Head First 设计模式》(中文版)按章节进行了分割,每章一个文件,方便大家下载”,我们可以推测出这部分内容主要关注的是设计模式中的工厂模式。...

    研磨设计模式之工厂方法模式.

    《研磨设计模式之工厂方法模式》是一本深入解析Java设计模式的专业书籍,特别是对工厂方法模式进行了详尽的探讨。设计模式是软件工程中的一种最佳实践,它们是解决常见问题的经验总结,使得代码更加可读、可维护和可...

    设计模式之工厂

    在软件设计领域,设计模式是一种经过验证的、通用的解决方案,用于解决常见编程问题。"工厂模式"是其中一种常用...通过实践和学习,你可以更好地掌握这些设计模式,并将其应用到你的项目中,提升软件开发的效率和质量。

    设计模式之工厂系列

    "设计模式之工厂系列"指的是几种不同的工厂模式,它们都是面向对象设计中的重要组成部分,尤其在Java编程语言中广泛使用。工厂模式的主要目标是提供一个创建对象的抽象接口,使得系统在不指定具体实现类的情况下,...

    工厂设计模式代码

    3. **抽象工厂模式**:抽象工厂模式是工厂方法模式的扩展,它关注的是整个产品族的创建,提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们的具体类。在不同的环境中,可以使用不同的工厂类来生产一系列...

    抽象工厂模式+工厂方法模式+策略模式+类图实现手机加工厂

    本文将探讨三个重要的设计模式:抽象工厂模式、工厂方法模式以及策略模式,并结合一个实际的场景——手机加工厂,来具体阐述它们的应用。 首先,我们来看**抽象工厂模式**。这个模式主要用于创建相关或依赖对象的...

    设计模式之工厂方法模式

    工厂方法模式是设计模式中的创建型模式,它在软件工程中扮演着重要的角色,尤其对于初学者来说,理解和掌握这一模式对于提升编程能力和设计能力大有裨益。在这个主题中,我们将深入探讨工厂方法模式的核心概念、作用...

Global site tag (gtag.js) - Google Analytics