package 工厂方法模式;
public interface Human {
public void laugh();
public void cry();
public void talk();
}
//****************************************************************************
package 工厂方法模式;
public class WhiteHuman implements Human {
public void laugh() {
System.out.println("白种人笑了····");
}
public void cry() {
System.out.println("白种人哭了····");
}
public void talk() {
System.out.println("白种人在说话了····");
}
}
//****************************************************************************
package 工厂方法模式;
public class BlackHuman implements Human {
public void laugh() {
System.out.println("黑种人笑了····");
}
public void cry() {
System.out.println("黑种人哭了····");
}
public void talk() {
System.out.println("黑种人在说话了····");
}
}
//****************************************************************************
package 工厂方法模式;
public class YellowHuman implements Human {
public void laugh() {
System.out.println("黄种人笑了····");
}
public void cry() {
System.out.println("黄种人哭了····");
}
public void talk() {
System.out.println("黄种人在说话了····");
}
}
//****************************************************************************
package 工厂方法模式;
public class HumanFactory {
public static Human createHuman(Class c) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
Human human = null;
human = (Human)Class.forName(c.getName()).newInstance();
return human;
}
}
//****************************************************************************
package 工厂方法模式;
public class NvWa {
public static void main(String aegs[]) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
System.out.println("····造出的第一批人是这样的:白人····");
Human whiteHuman = HumanFactory.createHuman(WhiteHuman.class);
whiteHuman.cry();
whiteHuman.laugh();
whiteHuman.talk();
System.out.println("····造出的第二批人是这样的:黑人····");
Human BlackHuman = HumanFactory.createHuman(BlackHuman.class);
BlackHuman.cry();
BlackHuman.laugh();
BlackHuman.talk();
System.out.println("····造出的第三批人是这样的:黄种人····");
Human YellowHuman = HumanFactory.createHuman(YellowHuman.class);
YellowHuman.cry();
YellowHuman.laugh();
YellowHuman.talk();
}
}
分享到:
相关推荐
工厂方法模式是设计模式中的创建型模式之一,它在软件工程中扮演着非常重要的角色,尤其是在C#这样的面向对象编程语言中。工厂方法模式提供了一种封装对象创建过程的方法,使得具体的创建过程延迟到子类中进行,从而...
工厂方法模式是面向对象设计模式中的行为模式,它提供了一种创建对象的最佳方式。在工厂方法模式中,我们在创建对象时不会对客户端暴露创建逻辑,而是引用一个共同的接口来指向新创建的对象。这种模式是类的创建模式...
工厂方法模式是设计模式中的一种创建型模式,它在面向对象编程中扮演着重要的角色。在C#中,我们可以利用这种模式来抽象产品的创建过程,将具体的实例化操作延迟到子类中进行,从而实现代码的解耦和扩展性。 1. **...
参考如下博客,亲自实践了一个QT的工厂模式,亲测可用,编译运行实测。 我用qt5.6,在windows下编译并运行测试,正常。 https://blog.csdn.net/baidu_33570760/article/details/71159808 1. Qt工厂模式源码 2. C++...
抽象工厂模式的角色包括:抽象产品A、抽象产品B分别代表产品族中的不同产品,抽象工厂(Abstract Factory)定义了创建产品A和产品B的接口,具体工厂1(Concrete Factory 1)和具体工厂2(Concrete Factory 2)分别...
工厂方法模式是一种创建型设计模式,它提供了一个创建对象的最佳方式。这种模式涉及到一个抽象工厂类,该类拥有一个用于创建对象的方法。子类通常会覆盖这个方法,以便可以创建出特定类型的对象。简而言之,工厂方法...
在提供的文件列表中,"A234]工厂方法模式.exe"可能是一个演示或教学程序,用于直观展示工厂方法模式的运用;"工厂方法模式.ppt"可能是一份详细的幻灯片教程,包含了模式的理论介绍、示例代码和应用场景;...
### JAVA设计模式之工厂方法模式 #### 一、引言 设计模式是在软件工程领域内广泛应用的一种编程思想,它能够帮助开发者解决常见的软件设计问题,提高代码的可维护性和复用性。面向对象的设计模式更是现代软件开发...
简单工厂模式是最简单的工厂模式形式,它通过一个静态方法来创建对象。在这个模式中,工厂类负责知道应该创建哪个具体类的对象。例如,在Java中,你可以定义一个名为`SimpleFactory`的类,它有一个静态方法如`...
工厂模式有多种变体,如简单工厂模式、工厂方法模式和抽象工厂模式,每种都有不同的适用场景。简单工厂模式通常用于创建对象相对固定,且不需扩展的情况;工厂方法模式则允许子类决定实例化哪个类,适用于产品族的...
工厂模式分为简单工厂模式、工厂方法模式和抽象工厂模式。在Java中,工厂方法模式可以通过定义接口或抽象类,让子类决定实例化哪个类。 ```java // 工厂方法模式示例 interface Shape { void draw(); } class ...
为了解决这些问题,可以考虑使用更复杂的工厂模式,如工厂方法模式或抽象工厂模式。 在实际项目中,简单工厂模式常用于创建具有共同接口或基类的一组对象,如数据库连接、图形元素等。通过合理运用简单工厂模式,...
此外,工厂类的职责相对单一,如果需要更多的控制和策略,可能需要考虑使用更复杂的工厂模式,如工厂方法模式或抽象工厂模式。 #### 三、模式扩展与注意事项 虽然简单工厂模式在许多场景下表现良好,但在一些情况...
在软件设计模式中,工厂模式是一种非常常见的创建型模式,它的主要目的是将对象的创建过程封装起来,使得创建过程与使用过程分离,提供一个统一的接口来生成不同类型的实例。在这个场景中,我们讨论的是如何在C#中...
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。下面将详细介绍这三种工厂模式及其代码示例。 1. 简单工厂模式: 简单工厂模式通常用于创建一系列相关或相互依赖的对象。它包含一个工厂类...
UML文档-简单工厂模式 简单工厂模式是一种专门负责将大量有共同接口的类实例化的模式,而不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。 简单工厂模式的...
**设计模式——简单工厂模式** 简单工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。...在实际开发中,根据项目需求和规模,可能会选择更复杂的工厂模式,如工厂方法模式或抽象工厂模式。
《设计模式:工厂方法》 在软件工程领域,设计模式是一种在特定情况下解决常见问题的模板,它描述了在特定上下文中如何重复使用代码来解决问题。"工厂方法"(Factory Method)是设计模式中的一种创建型模式,它提供...
- 考虑如何改进工厂类,以适应未来的扩展,比如引入抽象工厂模式或者工厂方法模式。 通过解决这些习题,读者不仅可以掌握简单工厂模式的基本原理,还能理解如何在实际项目中应用这一模式,提升代码质量和可维护性。
1. **简单工厂模式**:由一个静态方法或单一工厂类负责创建所有类型的产品,当产品类型增加时,可能需要修改工厂类,违背了开闭原则。 2. **工厂方法模式**:定义一个创建对象的接口,让子类决定实例化哪一个类。...