`
youngerblue
  • 浏览: 44174 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

设计模式之工厂模式(女娲造人)

阅读更多
package design.factory;

public interface AbstractHumanFactory {
	
	public abstract <T extends Human> T createHuman(Class<T> c);

}

package design.factory;

public class BlackHuman implements Human {

	public void getColor() {
		// TODO Auto-generated method stub
		System.out.println("黑色人种");

	}

	public void talk() {
		// TODO Auto-generated method stub
		System.out.println("非洲语");

	}

}


package design.factory;

public class YellowHuman implements Human {

	public void getColor() {
		// TODO Auto-generated method stub
		System.out.println("黄色人种");

	}

	public void talk() {
		// TODO Auto-generated method stub
		System.out.println("中国话");

	}

}


package design.factory;

public interface Human {
	
	public void getColor();
	
	public void talk();

}

package design.factory;

public class HumanFactory implements AbstractHumanFactory {

	public <T extends Human> T createHuman(Class<T> c) {
		// TODO Auto-generated method stub
		Human human = null;
		try{
			human = (Human)Class.forName(c.getName()).newInstance();
		}catch(Exception e){
			e.printStackTrace();
		}
		return (T)human;
	}

}
package design.factory;

public class NvWa {
	public static void main(String[] args){
		AbstractHumanFactory yinyanglu = new HumanFactory();
		Human black = yinyanglu.createHuman(BlackHuman.class);
		black.getColor();
		black.talk();
		Human yellow = yinyanglu.createHuman(YellowHuman.class);
		yellow.getColor();
		yellow.talk();
	}

}

优点:良好的封装行,代码结构清晰,扩展性好,屏蔽了产品类,是典型的解耦框架。
使用场景:1.所有需要生成对象的地方都可以使用,不过要考虑是否增加代码的复杂性。
2.需要灵活的,可扩展的框架时可以考虑。
3.可用在异构项目上.
分享到:
评论

相关推荐

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

    "C#简单工厂模式女娲造人"这个标题和描述采用了一种形象的比喻,将创建对象的过程比作神话故事中的女娲造人,以帮助理解简单工厂模式的基本概念。 简单工厂模式是一种创建型设计模式,它的核心思想是提供一个工厂类...

    女娲造人工厂方法模式.zip

    女娲造人工厂方法模式是一种在软件设计中广泛使用的创建型设计模式,它提供了一种创建对象的最佳方式。在这个模式中,我们创建一个工厂类,该类负责生产一系列相关或相互依赖的对象,而无需指定它们的具体类。这种...

    设计模式 -- 模仿女娲造物(入门)

    "模仿女娲造物"的比喻可能是指设计模式在软件设计中的创造性作用,如同女娲捏土造人一样,设计模式为开发者提供了构建复杂系统的基础元素和规则。 4. **源码分析**: 标签中的“源码”提示我们,这篇博文中可能会...

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

    **简单工厂模式**,又称为静态工厂方法,是设计模式中最简单的形式之一。在女娲造人的比喻中,女娲作为工厂,负责根据一定的规则(例如需求或参数)创造人类(产品)。在代码中,这个“女娲”通常是一个静态类,它...

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

    根据题目描述,我们需要使用简单工厂模式来模拟女娲造人的过程。在这个场景中,我们将通过一个简单的Java程序实现这一目标。 ##### 1. 抽象产品接口:Person ```java public interface Person { void sayHello();...

    java设计模式

    8.1 女娲造人的故事 8.2 工厂方法模式的定义 8.3 工厂方法模式的应用 8.3.1 工厂方法模式的优点 8.3.2 工厂方法模式的使用场景 8.4 工厂方法模式的扩展 8.5 最佳实践 第9章 抽象工厂模式 9.1 女娲的失误 9.2 抽象...

    设计模式习题从简单工厂模式到组合模式

    #### 一、女娲造人(简单工厂模式) **题目解析**: 本题要求使用简单工厂模式来模拟女娲造人的过程。在这个过程中,传入不同的参数可以得到不同类型的人(如男性、女性或机器人)。在现有基础上增加了一个新的类别...

    软件体系结构实验设计模式.doc

    《软件体系结构实验设计模式》的文档主要探讨了软件开发中的设计模式,特别是关于工厂模式的运用。设计模式是软件工程中的一种最佳实践,用于解决常见的设计问题,提供可重用的解决方案。在这个实验中,重点讲解了...

    java简单工厂模式文档简单汇总

    【Java 简单工厂模式】简单工厂模式是一种创建型设计模式,它的主要思想是提供一个工厂类,根据传入的参数动态地返回一个产品对象。这种模式将对象的创建与对象的使用分离,使得代码更加简洁且易于维护。 在Java中...

    个人写的Java工厂模式

    在软件设计模式中,工厂模式是一种非常基础且实用的设计模式,它主要解决的是对象创建的问题。在Java编程中,工厂模式被广泛应用于类的实例化过程中,以提高代码的灵活性和可扩展性。本文将详细解析工厂模式在Java...

    java设计模式---诙谐易懂版

    2. 设计模式是一套被反复使用、多数人知晓、经过分类编目、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式一般分为三大类:创建型模式、结构型模式和行为型...

    淮北师范大学-李想-设计模式(C++)作业-1

    淮北师范大学-李想-设计模式-作业1 1.一个农场专门负责种植各种水果,比如苹果、草莓、葡萄等,任何水果都可以种植、生长和采摘。此外,每一种水果还有自己的特性,如:苹果是多年生具有树龄的属性,葡萄则分为有籽...

    设计模式之禅(第2版)

    ### 设计模式之禅(第2版) #### 前言 《设计模式之禅(第2版)》是一本深入浅出地介绍软件设计模式的书籍,作者秦小波通过对23种经典设计模式以及6大设计原则的解读,为读者提供了丰富的实践案例和深入的理论分析...

    P2实验二设计模式实验一.pdf

    - 在女娲造人的场景中,我们通过简单工厂模式创造Man和Woman对象,当增加新的类型时,只需要修改工厂类,符合开闭原则。 2. **工厂方法模式**: - 工厂方法模式将对象的创建延迟到子类,提供了更灵活的扩展方式。...

    simple_factory2(第二题)_spring3et_spellaqr_women_worsefbc_设计模式的女娃造人

    使用简单工厂模式模拟女娲(Nvwa)造人(Person)。传入参数M,则返回一个Man对象,传入参数W,则返回一个Women对象。用Java语言来实现该场景。然后增加一个新的Robot类型,传入参数R,则生产一个Robot对象。

    抽象工厂模式

    **抽象工厂模式**是一种创建型设计模式,它提供了一种接口,可以创建一系列相关的或相互依赖的对象,而无需指定它们具体的类。此模式适用于系统中的一组产品家族,每个产品家族又包含多个具体的产品类型。这种模式的...

    实验二_航天班161班_6130116093_黄丹_创建型设计模式1

    1. 简单工厂模式:在实验的第一部分中,模拟女娲造人,根据输入参数创建Man、Woman或Robot对象。简单工厂模式是一种静态工厂方法,它负责创建对象并返回给客户端。在添加新的Robot类时,需要更新工厂以处理新的参数R...

    工厂模式详解

    工厂模式是一种设计模式,它是创建型模式之一,主要用于在代码中生成对象。通过工厂模式,我们可以将对象的创建过程封装起来,使得代码更加模块化,同时也解耦了对象的实例化与使用。工厂模式通常分为简单工厂模式、...

    Java与模式(含示例代码)

    12.8 女娲抟土造人.............................160 第13 章 工厂方法(Factory Method)模式 ........165 13.1 引言.............................................165 13.2 工厂方法模式的结构....................

    浅谈js对象的创建和对6种继承模式的理解和遐想

    随着故事的发展,我们可以看到如何逐步优化对象的创建和继承过程,从最初的逐个捏造到使用模具(原型对象)批量生产,再到引入更多的设计模式,如工厂模式、构造函数模式、原型模式等,以解决不同场景下的问题。...

Global site tag (gtag.js) - Google Analytics