工厂方法模式去掉了简单工厂模式中工厂方法的静态属性,使得它可以被子类继承。这样在简单工厂模式里集中在工厂方法的压力可以由工厂方法模式中不用的工厂子类来分担。首先看看它的组成
- 抽象工厂角色(是具体工厂角色必须实现的接口或者必须继承的父类,由抽象类或接口实现)
- 具体工厂角色(含有和具体业务逻辑相关代码,由应用程序调用创建具体产品角色的对象)
- 抽象产品角色(具体产品继承的父类或实现的接口,由抽象类或者接口实现)
- 具体产品角色(具体的类实现)
1,抽象工厂角色
interface Helper{
public Tool setLanguage();
}
2,具体工厂角色
class EnglishHelper implements Helper{
public Tool setLanguage(){
return new English();
}
}
class JapaneseHelper implements Helper{
public Tool setLanguage(){
return new Japanese();
}
}
3,抽象产品角色
interface Tool{
public void translate(String s);
}
4,具体产品角色
class English implements Tool{
public void translate(String s){
System.out.println("english");
}
}
class Japanese implements Tool{
public void translate(String s){
System.out.println("japanese");
}
}
使用方法如下:
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
Helper h = new EnglishHelper();
Tool t = h.setLanguage();
t.translate("语言");
}
catch(Exception ex){
System.out.print(ex.toString());
}
}
}
这种模式的最大问题就是对象的数量会随着工厂方法的加入成倍增长。当工具种类多后会出现大量工厂对象。我们可以利用Java的反射机制与配置文件实现这点。
分享到:
相关推荐
工厂方法模式是面向对象设计模式中的一种,它属于创建型模式,主要解决的是当系统需要创建的对象具有多种类型,而具体创建哪种类型的对象在运行时才能确定的问题。在这个压缩包中,`FactoryMethod`可能包含了Java...
这个是http://blog.csdn.net/dawanganban/article/details/9884681博客中java设计模式的源代码。下载前请先看《设计模式——工厂模式在开发中的应用》一文。
**设计模式——简单工厂模式** 简单工厂模式是创建型设计模式的一种,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个专门的类(称为工厂类)负责创建对象,客户端无需知道所创建的对象的具体类,只需要...
简单工厂模式,也称为静态工厂模式,是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露实例化逻辑。在简单工厂模式中,一个单一的工厂类负责生产所有相关类型的实例。这种模式适用于产品种类较少且...
抽象工厂模式是设计模式中的一种创建型模式,它提供了一种创建对象集合的接口,而无需指定具体类。这种模式的主要目的是为了隔离产品对象的创建和使用,使得系统对产品类的依赖降低到最低,同时也方便了产品的扩展和...
Android之大话设计模式——:抽象工厂模式借鉴.pdf
此 时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许 系统不修改工厂类逻辑的情况下来添加新产品,这样也就克服了简单工厂模式中缺点。下面看下工厂模式 的具体实现...
在学习和应用抽象工厂模式时,理解其核心思想——封装变化和解耦,以及如何在实际项目中选择合适的场景使用这一模式,是非常关键的。对于软件工程专业的学生来说,掌握这一模式不仅可以提升编程能力,还能提高对软件...
通过阅读《设计模式——GFour》,开发者可以提升自己的设计能力,学习如何写出更加优雅、可维护的代码。这本书对于任何想要提升软件设计水平的人来说都是一份宝贵的资源,无论你是初学者还是经验丰富的专业开发人员...
设计模式是软件工程中的一种重要概念,它代表了在特定情境下解决常见问题的最佳实践。刘伟先生在讲解设计模式时,通常会深入浅出地介绍这些模式的...学习设计模式不仅可以提升个人技能,也有利于团队间的沟通和协作。
Java设计模式——工厂设计模式详解 在软件设计中,工厂设计模式是一种常用的设计模式,主要用于实例化有共同接口的类。Java设计模式——工厂设计模式是Java中的一种常用的设计模式,主要用于实例化有共同接口的类。...
Android之大话设计模式——:抽象工厂模式参考.pdf
### 设计模式——基于C#的工程化实现及扩展 #### 概述 本书旨在向读者展示如何利用C# 2.0语法有效地实现和应用设计模式,使其不仅仅局限于简单的例子,而是能够在实际工程项目中发挥重要作用。全书分为七个部分,...
简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了客户端代码与具体产品类之间的耦合度。在本实验中,我们将深入理解和应用C#语言实现简单工厂模式。 简单工厂模式的...
设计模式是一种在软件设计中被广泛认可的解决特定问题、经过良好记录并可重用的解决方案。它们代表了在各种编程环境中反复出现的问题的最佳实践。原版的设计模式通常指的是最初由“Gang of Four”(GoF)在他们的...
通过深入学习《设计模式——Java语言中的应用》,开发者能够更好地理解和应用这些模式,从而编写出更加高效、可扩展的Java程序。无论是初级开发者还是经验丰富的程序员,都应该不断探索和实践设计模式,以提升自己的...
**工厂模式**是一种常见的设计模式,属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,当我们创建对象时,不会直接实例化具体类,而是通过一个工厂类来生产所需的对象。这种模式的核心在于封装了对象...