`
llxwxj
  • 浏览: 8686 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

java设计模式之一:简单工厂模式

阅读更多

      从设计模型的类型来讲,简单的工厂模式属于创建型模式,又叫静态工厂方法模式,简单的工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。

      简单工厂模式的实质是由工厂类根据传入的参数,动态决定应该创建哪种产品类(这些产品类继承自一个父类或实现一个接口)的实例。

工厂( Creator )角色

    简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。   

抽象产品( Product )角色   

      简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。   

具体产品( Concrete Product )角色   

      是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。

举例说明:

 

public interface Animal {
	public void makeSound();
}
public class Cat implements Animal{
	@Override
	public void makeSound() {
		System.out.println("喵喵...");
	}
}
public class Dog implements Animal{
	@Override
	public void makeSound() {
		System.out.println("汪汪...");
	}
}
public class AnimalFactory {
	public static Animal createAnimal(String animal) {
		if (animal.equals("猫")) {
			return new Cat();
		} else if (animal.equals("狗")) {
			return new Dog();
		}else {
			return null;
		}
	}
}
public class AnimalSound {
	public static void main(String[] args) {
		Animal animal=AnimalFactory.createAnimal("狗");
		animal.makeSound();
	}
}
public class AnimalSound {
	public static void main(String[] args) {
		Animal animal=AnimalFactory.createAnimal("猫");
		animal.makeSound();
	}
}

 传入不同的参数,将调用不同的产品类执行相应的方法。

优点:调用者可以不必考虑如何创建对象,而只通过传入参数进行调用就可以了。

缺点:如果要增加产品,只能改变工厂。如果产品类经常增加,那么,对于具体产品类型和条件参数的判断会很多,对系统的扩展和维护非常不利。

应用:因为它的优缺点,所以,工厂类负责创建的对象比较少,客户只知道传入工厂类的参数,对于如何创建对象(逻辑)不关心的情况;

分享到:
评论

相关推荐

    java设计模式之工厂模式

    java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式java设计模式之工厂模式...

    java 设计模式 mvc模式 单例模式 代理 工厂 简单工厂

    5. **简单工厂模式**:是最简单的工厂模式形式,它包含一个工厂类,根据传入的参数决定返回哪种类型的实例。虽然易于理解,但不易扩展,因为所有产品类型都硬编码在工厂类中。 以上设计模式在实际项目中有着广泛的...

    Java工厂模式:简单工厂、工厂方法模式、抽象工厂模式代码示例

    工厂模式是Java设计模式中的一种创建型模式,旨在提供一种将对象创建与其实现分离的机制,增加软件的灵活性和可维护性。在Java中,工厂模式分为三种:简单工厂、工厂方法模式和抽象工厂模式。 **简单工厂模式** 是...

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

    工厂模式是一种常用的软件设计模式,它是创建型设计模式的一种,主要解决对象的创建问题,将对象的创建过程封装起来,使得创建过程独立于使用过程。这样可以提高代码的可复用性和灵活性,同时降低了系统的耦合度。...

    Java 经典设计模式讲解以及项目实战

    Java 经典设计模式讲解以及项目实战 设计模式简介:主要介绍各种设计模式的概念和运用场景等 设计模式综合运用:主要是笔者在实际工作中运用到的一些设计模式综合运用事例的提炼 Spring设计模式简介:主要是讲述...

    《Java设计模式》课后习题参考答案-刘伟(20180723).pdf

    此外,为了确保参考资料的权威性,建议读者查阅原书《Java设计模式》以获得更加详尽的解释和说明。如果有任何意见或建议,可以通过提供的电子邮箱与作者联系。在学习设计模式的过程中,理解每一个模式的意图、结构、...

    设计模式之java工厂模式

    "设计模式之java工厂模式"是关于如何优雅地创建对象的一种经典设计模式,它属于创建者模式类别。创建者模式主要关注对象的创建,而工厂模式则在其中扮演着重要角色,因为它提供了一种抽象的方式来创建对象,从而使...

    JAVA设计模式(java设计)

    Java设计模式是面向对象编程领域中的重要概念,它是一套被广泛接受并实践的解决软件设计问题的经验总结。设计模式并非具体的代码或库,而是一种在特定情境下为了解决常见问题而制定的通用解决方案的描述。它们描述了...

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    **简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...

    《Java设计模式》刘伟 课后习题及模拟试题答案.rar

    《Java设计模式》是刘伟老师的一本经典教材,它深入浅出地讲解了软件设计中的重要概念——设计模式。设计模式是经验丰富的开发者在解决常见问题时总结出的通用解决方案,是软件开发中的智慧结晶。这本书的课后习题和...

    《Java设计模式》课程设计报告.docx

    《Java设计模式》课程设计报告主要探讨了如何利用Java编程语言和MyEclipse集成开发环境来实现基于设计模式的西瓜市场系统。这个项目涵盖了四种重要的设计模式:单例模式、代理模式、建造者模式和抽象工厂模式,为...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    Java设计模式是软件工程中的一种最佳实践,它总结了在特定场景下解决常见问题的经验,为程序员提供了可重用的解决方案。本资料“《java设计模式》课后习题模拟试题解答——刘伟.zip”主要涵盖了Java设计模式的学习与...

    Java设计模式-简单工厂

    **Java设计模式——简单工厂** 简单工厂模式是软件设计模式中的一种基础模式,它属于创建型设计模式。在Java编程中,我们常常会遇到需要创建一系列相关或相互依赖的对象,而这些对象的创建过程可能会非常复杂。这时...

    java设计模式的应用

    ### Java设计模式的应用 #### 一、引言 在当今快速发展的软件开发领域,Java作为一门功能强大且灵活的语言,不仅拥有丰富的API资源,还能与强大的数据库系统无缝对接。这使得许多开发人员能够以模块化的形式构建...

    工厂模式(简单工厂,普通工厂,抽象工厂)代码java

    在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...

    Java设计模式之禅

    《Java设计模式之禅》是一本深入浅出讲解设计模式的书籍,书中不仅包含23种经典设计模式的案例,还详细介绍了设计模式背后的思想和原则,适合初学者以及对设计模式有一定了解的程序员阅读。本书旨在帮助读者理解如何...

    java经典设计模式

    Java设计模式是软件开发中的重要概念,它是一种在特定情境下解决常见问题的模板或蓝图。这些模式在软件工程中被广泛使用,因为它们代表了最佳实践,可以帮助开发者编写更可维护、可扩展和可复用的代码。下面将详细...

    java设计模式【之】抽象工厂模式【源码】【场景:制作咖啡】

    java设计模式【之】抽象工厂模式【源码】【场景:制作咖啡】 * 抽象工厂 * * 创建对象实例时,不要直接 new 类, 而是把这个new 类的动作放在一个工厂的方法中,并返回。 * 在工厂方法的基础上,进一步抽象工厂...

    java设计模式pdf

    《Java设计模式PDF》是一本由James W. Cooper编写的经典书籍,该书详细介绍了Java编程语言中的设计模式,并通过实际案例深入探讨了这些模式的应用场景和实现细节。 在本书的前言部分(第3页),作者简要介绍了设计...

Global site tag (gtag.js) - Google Analytics