`

初学工厂方法模式

阅读更多

         在工厂方法模式中:核心的工厂类不在负责所有的产品的创建,而是将具体创建的工作交给子类去做,这个核心类就成为一个抽象工厂角色,仅负责给具体工厂子类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。
       在这里举一个例子: 抽象产兵器;具体产品有大炮,坦克和轰炸机。使用工厂方法模式生产具体产品 。用代码实现。模拟代码如下:

Weapons.java

public interface Weapons {
	/** 抽象工厂方法 */
	public abstract ManuFacture battle();
}

ManuFacture.java

 

public interface ManuFacture {

	/** 组装 */
	public abstract void assembling();

	/** 拆除 */
	public abstract void dismantle();
}

 

ManuFactureAircraft.java

public class ManuFactureAircraft implements ManuFacture {

	@Override
	public void assembling() {
		// TODO Auto-generated method stub
		System.out.println("组装轰炸机");
	}

	@Override
	public void dismantle() {
		// TODO Auto-generated method stub
		System.out.println("拆除轰炸机");
	}

}

 
ManuFactureArtillery.java

public class ManuFactureArtillery implements ManuFacture {

	@Override
	public void assembling() {
		// TODO Auto-generated method stub
		System.out.println("组装大炮");
	}

	@Override
	public void dismantle() {
		// TODO Auto-generated method stub
		System.out.println("拆除大炮");
	}

}

 

ManuFactureTank.java

public class ManuFactureTank implements ManuFacture {

	@Override
	public void assembling() {
		// TODO Auto-generated method stub
		System.out.println("组装坦克");
	}

	@Override
	public void dismantle() {
		// TODO Auto-generated method stub
		System.out.println("拆除坦克");
	}

}

 

Aircraft.java

public class Aircraft implements Weapons {
	/** 实现轰炸机战斗的工厂方法 */
	@Override
	public ManuFacture battle() {
		// TODO Auto-generated method stub
		return new ManuFactureAircraft();
	}

}

 

Artillery.java

public class Artillery implements Weapons {

	/** 实现大炮战斗的工厂方法 */
	@Override
	public ManuFacture battle() {
		// TODO Auto-generated method stub
		return new ManuFactureArtillery();
	}

}

 

Tank.java

public class Tank implements Weapons {
	/**实现坦克战斗的工厂方法 */
	@Override
	public ManuFacture battle() {
		// TODO Auto-generated method stub
		return new ManuFactureTank();
	}

}

 
测试程序:

Client.java

public class Client {
	private static Weapons weapons1, weapons2,weapons3;
	private static ManuFacture mf1, mf2,mf3;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		weapons1=new Artillery();
		mf1=weapons1.battle();
		mf1.assembling();
		mf1.dismantle();
		
		weapons2=new Tank();
		mf2=weapons2.battle();
		mf2.assembling();
		mf2.dismantle();
		
		weapons3=new Aircraft();
		mf3=weapons3.battle();
		mf3.assembling();
		mf3.dismantle();
	}

}

 


 

 

  • 大小: 2.5 KB
分享到:
评论

相关推荐

    设计模式_工厂方法模式

    工厂方法模式是设计模式中的一种创建型模式,它在软件工程中扮演着非常重要的角色,尤其是在需要抽象化创建对象的过程中。工厂方法模式的核心思想是定义一个创建对象的接口,但让子类决定实例化哪一个类。这样的设计...

    策略模式工厂方法模式观察者模式

    本资源主要涵盖了三种经典的设计模式:策略模式、工厂方法模式以及观察者模式,对于初学者来说是非常有价值的学习资料。 **策略模式**是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的...

    设计模式之工厂方法模式

    5. 模式的变体:可能讨论到简单工厂模式、抽象工厂模式等相关的创建型模式。 此外,FactoryMethod文件可能是包含更多的代码实例或案例,用于演示如何在实际编程中运用工厂方法模式。例如,可能有一个Java或C#的代码...

    工厂模式实现(比较简单,适合初学者)

    初学者可以通过这两个测试文件更好地理解和实践工厂模式。在阅读和运行代码时,可以关注以下几个点: 1. 如何定义抽象产品类和具体产品类。 2. 工厂类如何设计,包括它如何创建产品以及如何通过工厂方法将创建过程...

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

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

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

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

    工厂模式-设计模式

    这个压缩包文件可能是关于如何在实际项目中运用工厂模式的教学材料,特别适合那些正在学习设计模式的初学者。 首先,我们需要理解工厂模式的核心概念。工厂模式是一种创建型设计模式,它提供了一个创建对象的最佳...

    .net工厂模式原理视频教程

    视频1219am.wmv可能是教程的第一部分,详细讲解工厂模式的基础知识和基本实现,帮助初学者理解这一重要的设计模式。观看这个教程,开发者能够更好地理解和掌握.NET中的工厂模式,从而提升软件设计的质量和可维护性。

    工厂设计模式Java示例

    通过学习这个项目,初学者可以理解如何在Java中应用工厂设计模式,掌握如何通过工厂类来创建对象,以及如何在需要扩展产品族时利用抽象工厂模式来保持代码的灵活性。这将有助于提升他们对面向对象设计原则的理解,...

    C#简单工厂模式女娲造人

    总结来说,"C#简单工厂模式女娲造人"是一个生动的教学比喻,旨在帮助初学者理解和应用简单工厂模式。在C#编程中,简单工厂模式提供了统一的接口来创建对象,降低了客户端代码的复杂性,增强了代码的可读性和可维护性...

    简单工厂模式

    简单工厂模式是设计模式中的结构型模式之一,它是创建型设计模式的基础,为客户端代码提供了创建...总的来说,简单工厂模式是一种基础且实用的设计模式,对于初学者来说,理解和掌握它是学习更多设计模式的良好起点。

    工厂模式dao模式操作数据库小例子

    工厂模式和DAO(Data Access Object)模式是两种常见的设计模式,它们在处理数据库操作时发挥着关键作用。本示例旨在帮助初学者理解如何结合这两种模式来高效地与数据库交互。 首先,我们来详细探讨工厂模式。工厂...

    设计模式(简单工厂,工厂,抽象工厂)简单例子.rar

    设计模式是软件工程中的一...简单工厂模式适合初学者入门,而工厂方法和抽象工厂模式则更适用于大型项目,以提高代码的灵活性和可维护性。理解并合理运用这些设计模式,能够帮助开发者构建更加稳定、可扩展的软件系统。

    设计模式之简单工厂模式

    `01第一讲简单工厂模式.ppt`文件通常会包含深入的理论讲解、模式结构图、示例代码以及应用场景的分析,有助于初学者更好地理解简单工厂模式的工作原理和实践应用。 ### 7. 实际应用 简单工厂模式常用于框架和库中,...

    C#工厂模式实例详解

    在C#中,工厂模式可以分为简单工厂模式、工厂方法模式和抽象工厂模式。简单工厂模式通常有一个静态方法作为工厂,根据传入的参数来决定创建哪种类型的对象。工厂方法模式则是通过定义一个创建对象的抽象方法,并由...

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

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

    简单工厂模式-计算器

    简单工厂模式是一种设计模式,属于创建型模式,它提供了一种创建对象的最佳方式。在这个模式中,一个专门的类(称为工厂类)负责创建对象,客户端通过调用工厂类的特定方法来获取所需对象,而无需了解具体创建过程或...

    工厂模式与观察着模式的两个例子

    本篇将详细讲解工厂模式和观察者模式,并通过C#语言实现的示例来帮助初学者理解这两种模式的核心概念。 1. 工厂模式: 工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式,将对象的创建过程封装起来,...

    工厂模式详细案例

    工厂模式主要分为三种类型:简单工厂模式、工厂方法模式和抽象工厂模式。每一种都有其特定的适用场景和优缺点。 1. **简单工厂模式**: - 简单工厂模式由一个中心工厂类负责创建所有实例,它根据传入的参数或者...

    模式之一工厂模式-------------------------

    对于初学者来说,从简单工厂模式入手,逐步过渡到工厂方法模式和抽象工厂模式,能够逐步深入理解这一模式的精髓。通过实践和项目中的应用,可以进一步提升对设计模式的运用能力,从而在软件开发过程中编写出更加优雅...

Global site tag (gtag.js) - Google Analytics