`

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

阅读更多
接口的思想就是“封装隔离”。接口是系统可插拔性的保证。
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();

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
分享到:
评论

相关推荐

    java 简单工厂模式 源代码

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...

    Simple Factory Pattern.rar【GoF的简单工厂模式(C#源码)】

    简单工厂(Simple Factory)模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常它根据自变量的不同返回不同的类的实例。 简单工厂模式的实质是由一个工厂类根据传入的参量,动态决定...

    JAVA设计模式(单态模式和简单工厂模式)

    简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。下面我主要通过一个简单的实例说明简单工厂及其优点。 单态模式的定义: Singleton模式主要作用是保证在Java应用程序中,一个类Class只有...

    设计模式 C# 简单工厂模式,实现代码

    设计模式 C# 简单工厂模式,又叫做静态工厂方法模式,这是一个很简单的模式,它不属于GOF二十三个基本模式之中的一个,但它是一个很有用的模式,有用得着的时候可以使用它。

    工厂模式详尽源码

    Java 常用创建型设计模式中,工厂模式下的三种子模式:简单工厂(静态工厂)、工厂方法模式、抽象工厂模式的源码

    Calculator(简单工厂模式)

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂...

    简单工厂模式

    用c++实现的简单工厂模式,其功能是一个简单计算功能

    为什么要在JAVA工厂模式中使用静态方法

     为什么要在工厂模式中使用静态方法  工厂模式是一种封装对象创建的方法。如果不使用工厂模式,你需要直接使用构造方法来创建对象: Foo x = new Foo()  使用工厂模式,可以取而代之的调用工厂方法: Foo x...

    Java设计模式之静态工厂模式详解

    主要介绍了Java设计模式之静态工厂模式,简单说明了静态工厂模式的概念、原理、实现与使用方法,需要的朋友可以参考下

    php设计模式之简单工厂模式详解

    简单工厂模式 【静态工厂方法模式】(Static Factory Method) 是类的创建模式 工厂模式的几种形态: 1、简单工厂模式(Simple Factory)又叫做 静态工厂方法模式(Static Factory Method) 2、工厂方法模式(Factory ...

    C#工厂设计模式简单实例

    C#工厂设计模式简单实例——计算器 public class Factory { //创建一个静态方法 public static Operation CreateOper(int a, int b, string oper) { //创建一个Operation对象 Operation op = null; switch ...

    使用工厂方法模式构建简易四则计算器,并增加指数和对数两种二元运算,类图.vsdx

    使用工厂方法模式构建简易四则计算器,并增加指数和对数两种二元运算,类图。

    实例讲解PHP设计模式编程中的简单工厂模式

    简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出那一种产品类的实例。 1.工厂模式的几种形态 工厂模式专门负责将大量有共同接口的类实例化...

    使用简单工厂模式来进行Python的设计模式编程

    简单工厂模式又叫静态工厂方法模式,工厂模式家族中最简单的一种模式。这个模式的基本工作方式: 通过一个工厂来决定创建哪种具体的产品实例。 下面是一个简单的工厂实例: def create_animal(name): if name == '...

    实例解析C++设计模式编程中简单工厂模式的采用

    它又称为静态工厂方法模式,属于类的创建型模式。 简单工厂模式的UML类图 简单工厂模式的程序通过封装继承来降低程序的耦合度,设计模式使得程序更加的灵活,易修该,易于复用。 简单工厂是在工厂类中做判断,从而...

    java设计模式

    工厂类中的创建方法是静态的(static)所以简单工厂又称为静态工厂。 b.工厂方法: 在工厂方法设计模式中,工厂类不再负责产品的实列创建,而是将产品实例的创建交给抽象子类来 来负责创建。 c.抽象工厂:使用...

    Java设计模式之抽象工厂模式.docx

    一个具体工厂创建一个产品族,一个产品族是不同系列产品的组合,产品的创建的逻辑分在在每个具体工厂类...如果没有应对“多系列对象创建”的需求变化,则没有必要使用抽象工厂模式,这时候使用简单的静态工厂完全可以。

    PHP设计模式之简单工厂和工厂模式实例分析

    工厂模式是创建型模式的一种,分为简单工厂模式,工厂模式,抽象工厂模式,简单工厂可以称之为工厂模式的一个特例 先用一段简单的代码说明一下,现在假设我们是顾客,需要苹果味饮料和香蕉味饮料 <?php class ...

    简单工厂模式 应用

    简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 将“类实例...

    Java设计模式:工厂模式——图文+代码示例(通俗易懂)

    先来看看,简单工厂模式——也叫静态工厂模式,这里举个例子:你要去买一台手机,你不用关心手机是怎么生产出来的,里面的零件具体又是怎么制造的,这些通通都交给工厂去处理,你尽管去买手机就好了。 简单工厂模式...

Global site tag (gtag.js) - Google Analytics