`

简单工厂模式-静态工厂方法

阅读更多
接口的思想就是“封装隔离”。接口是系统可插拔性的保证。
1.优先使用接口
2.在既要定义子类的行为,又要为子类提供公共的功能时选择抽象类。 

public interface Api {
  public void operation(String s);
}  

public class ImplA implements Api {
  public void operation(String s) {
    System.out.println("ImplA" + s);
  }
}
                                         public class ImplB implements Api {
  public void operation(String s) {
    System.out.println("ImplB" + s);
  }
}                                        

public class Factory {
 //私有构造器,避免客户端无谓地创造简单工厂实例
 private Factory(){}
  public static Api createApi(int condition) {
    Api api = null;
    if(condition == 1) {
      api = new ImplA;
    } else if(condition == 2) {
      api = new ImplB;
    }
    return api;
  }
}                                                                                
在客户端使用时就可以用下面代码:
Api api = Factory.createApi(1);  

简单工厂也可以来创建抽象类或者普通类的实例。

缺点:
客户端调用工厂时传入参数,就说明客户端知道每个参数的含义。暴露了一部分细节。 

利用发射加上配置文件
Properties p = new Properties();
InputStream in = Test.class.getResourceAsStream("Design.properties");
p.load(in);

api = (Api)Class.forName(p.getProperty("ImplClass")).newInstance();

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
分享到:
评论

相关推荐

    简单工厂模式-工厂方法模式-抽象工厂模式

    简单工厂模式是一种静态工厂方法,它提供一个公共的工厂类来创建对象。这个工厂类根据传入的参数或者条件来决定创建哪种类型的实例。在简单工厂模式中,通常有一个中心工厂类,它负责知道如何创建各种产品。这种模式...

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

    简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要知道具体的产品类型,而无需了解如何创建对象。简单工厂模式适用于产品种类较少且相对固定的情况...

    简单工厂模式-计算器

    1. **简单工厂方法**:工厂类通常包含一个静态工厂方法,如`Calculator createCalculator(String type)`,该方法根据传入的类型参数(如"加法"、"减法"等)返回相应的计算器对象。这样,客户端只需传入所需的运算...

    简单工厂-工厂方法-抽象工厂 对比总结

    **简单工厂模式** 是最基础的工厂模式形式,它提供一个静态方法或类来创建对象。在这个模式中,工厂是负责创建对象的中心角色,它知道如何创建所有相关的对象。客户端通过调用工厂的静态方法获取所需的产品。简单...

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

    ### 设计模式——简单工厂模式解析与应用实例 #### 一、简单工厂模式概述 简单工厂模式(Simple Factory Pattern)是一种常用的创建型设计模式。它提供了一种方式来封装对象的创建过程,使得整个系统更加灵活,...

    工厂模式-设计模式

    1. **简单工厂模式**:也称为静态工厂模式,它通常包含一个静态方法,该方法根据输入参数返回相应的产品对象。这种方法简单易用,但不支持工厂类的扩展,且违反了"开闭原则"。 2. **工厂方法模式**:定义一个用于...

    设计模式-简单工厂模式-披萨店C#语言版

    简单工厂模式是软件设计模式中的一种,它属于创建型模式,旨在提供一个统一的接口,用来创建一组相关或相互依赖的对象。在这个例子中,我们关注的是如何使用C#语言实现这个模式,特别是在披萨店的场景下。 在披萨店...

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

    1. **简单工厂模式**:这是最基础的工厂模式形式,它包含一个静态工厂方法,用于创建对象。简单工厂模式适用于产品种类较少且不经常变动的情况。 2. **工厂方法模式**:在工厂方法模式中,每个子类对应一个产品,每...

    工厂模式-简单工厂(设计模式的入门级模式)

    在简单工厂模式中,一个工厂类负责创建对象,而客户端代码则不再直接创建对象,而是通过调用工厂类的静态方法来获取所需的实例。 在Java中,我们通常使用`new`关键字来实例化对象,但这存在一些问题。例如,当需要...

    工厂模式 - PHP版

    1. **简单工厂模式**:由一个静态方法或单一工厂类负责创建所有类型的产品,当产品类型增加时,可能需要修改工厂类,违背了开闭原则。 2. **工厂方法模式**:定义一个创建对象的接口,让子类决定实例化哪一个类。...

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

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

    2 工厂模式-课程内容.rar

    - 简单工厂模式:一个静态工厂类负责创建所有类型的对象,它通常用于创建对象种类较少的情况。 - 工厂方法模式:将具体的对象创建过程交给子类处理,每个子类对应一个具体的产品对象,实现了多态性。 - 抽象工厂...

    设计模式之-工厂方法-FactoryMethod

    简单工厂模式中,有一个静态工厂类负责创建所有产品,而在工厂方法模式中,产品创建的责任被转移到了具体的子类中,这样更符合面向对象的原则,同时也更利于扩展。 总的来说,工厂方法模式是一种实用的设计模式,它...

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

    工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...

    简单工厂模式,工厂方法模式,抽象工厂模式

    简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的工厂类来创建对象。这个工厂类通常包含一个或多个静态方法,用于根据输入参数创建不同类型的实例。这种模式的优点在于客户端代码无需...

    设计模式-工厂模式

    简单工厂模式通常由一个静态工厂类来负责创建对象,这个静态工厂类根据传入的参数或条件来决定创建哪种类型的实例。在Java中,这个工厂类可以是一个普通的类,包含静态方法来生产对象。这种模式简单易用,但当产品...

    设计模式-简单工厂模式

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了系统与具体创建对象之间的耦合度。在这个模式中,有一个名为“工厂”的类,负责创建对象,客户端通过调用工厂的方法...

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

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

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

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

Global site tag (gtag.js) - Google Analytics