`
huihua
  • 浏览: 62164 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
文章分类
社区版块
存档分类
最新评论

设计模式:Static Factory

阅读更多

设计模式有很多种,这里说一下Static Factory模式,以汽车为例子吧。

图一:设计图

 

 

IAuto.java

java 代码
  1. package designpattern.factorymethod;   
  2.   
  3. public interface IAuto {   
  4.   
  5.  public void run();   
  6.     
  7.  public void stop();   
  8. }   
  9.   

Car.java

java 代码
  1. package designpattern.factorymethod;   
  2.   
  3. public class Car implements IAuto{   
  4.   
  5.  public void run() {   
  6.   System.out.println("Car run!");     
  7.  }   
  8.   
  9.  public void stop() {   
  10.   System.out.println("Car run!");   
  11.  }   
  12.   
  13. }   
  14.   

Truck.java

java 代码
  1. package designpattern.factorymethod;   
  2.   
  3. public class Truck implements IAuto{   
  4.   
  5.  public void run() {   
  6.   System.out.println("Truck run!");   
  7.  }   
  8.   
  9.  public void stop() {   
  10.   System.out.println("Truck stop!");   
  11.  }   
  12.   
  13. }   
  14.   


StaticAutoFactory.java

java 代码
  1. package designpattern.factorymethod;   
  2.   
  3. public class StaticAutoFactory {   
  4.   
  5.  //can not instance   
  6.  private StaticAutoFactory(){}   
  7.   
  8. //-------------example1--------------------------    
  9.  public static IAuto createCar()   
  10.  {   
  11.   return new Car();   
  12.  }   
  13.     
  14.  public static IAuto createTruck()   
  15.  {   
  16.   return new Truck();   
  17.  }   
  18. //--------------example2-------------------------   
  19.     
  20.  public static final int CAR = 0;   
  21.  public static final int TRUCK = 1;   
  22.  public static IAuto createAuto(int type)   
  23.  {   
  24.   switch (type)   
  25.   {   
  26.   case CAR:   
  27.    return new Car();   
  28.   case TRUCK:   
  29.    return new Truck();   
  30.   }   
  31.   return null;   
  32.  }   
  33.   
  34. }   
  35.   

StaticFactoryClient.java

java 代码
  1. package designpattern.factorymethod;   
  2.   
  3. public class StaticFactoryClient {   
  4.   
  5.  /**  
  6.   * @param args  
  7.   * we needn't care the subclass of IAuto, and how to new them by using static factory.  
  8.   */  
  9.  public static void main(String[] args) {   
  10.   IAuto auto1 = StaticAutoFactory.createCar();   
  11.   auto1.run();   
  12.   IAuto auto2 = StaticAutoFactory.createAuto(StaticAutoFactory.TRUCK);   
  13.   auto2.run();   
  14.  }   
  15.   
  16. }   
  17.   

 

 

 
分享到:
评论

相关推荐

    C++设计模式之Static Factory模式详解

    主要为大家详细介绍了C++设计模式之Static Factory模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java设计模式:DAO模式.doc

    java设计模式:DAO模式 DAO设计模式 DAO的理解 1、DAO其实是利用组合工厂模式来解决问题的,并没有带来新的功能,所以学的 其实就是个思路。 2、DAO理论上是没有层数限制的。 3、DAO的各层理论上是没有先后的。 DAO...

    Head.First设计模式_PDF.part1

    第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、Command、Adapter、Facade、Templat Method、Iterator、Composite、State、Proxy。最后三章比较...

    PHP设计模式(2017年8月力作)

    PHP设计模式 Abstract Factory , Builder , Factory Method , Multiton , Pool , Prototype , Simple Factory , Singleton , Static Factory , Structural , Adapter / Wrapper , Bridge , Composite, Data Mapper ,...

    Java面试宝典(设计模式,算法,Linux篇).docx

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

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

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

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

    本文以实例形式较为详细的介绍了PHP设计模式的简单工厂模式,对于进行PHP程序设计来说有很好的借鉴作用。具体如下: 一、概念 简单工厂模式 【静态工厂方法模式】(Static Factory Method) 是类的创建模式 工厂模式的...

    Head First Design Patterns 英文版 Head First设计模式

    第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较...

    在iOS中实现设计模式代码实现

    在iOS开发中,设计模式是一套被广泛认可的解决特定设计问题的模板。它们帮助开发者构建可维护、可扩展且耦合度低的软件。以下是几种常用设计模式在iOS中的实现说明: 1. **单例模式(Singleton Pattern)**: 单例...

    抽象工厂模式(Abstract Factory Pattern)

    要好好去读上面那个实例,虽然有点绕嘴,其实只要用心去读,分清了抽象工厂模式的各个角色,对理解设计模式是非常重要的。理解头绪,然后接合简单工厂模式、工厂方法模式对工厂家族的了解,再加上抽象工厂模式的意图...

    二十三种设计模式【PDF版】

    设计模式之 Factory(工厂方法和抽象工厂) 使用工厂模式就象使用 new 一样频繁. 设计模式之 Builder 汽车由车轮 方向盘 发动机很多部件组成,同时,将这些部件组装成汽车也是一件复杂的工作,Builder 模式就是将这...

    java 简单工厂模式 源代码

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

    head_first_design_patterns.pdf Head First 设计模式(英文原版 非扫描)

    第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、Command、Adapter、Facade、TemplatMethod、Iterator、Composite、State、Proxy。最后三章比较...

    java设计模式示例

    1.工厂方法模式(Factory Method) 将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到具体的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的...

    JAVA设计模式

    简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出 哪一种产品类的实例。 工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)...

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

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

    PHP中的几种设计模式1

    (1)简单工厂模式简单工厂模式又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式 (2) 工厂方法模式此模式中,通过定义一

    java设计模式CatalogDAOFactory是典型的工厂方法

    工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory). 这两个模式区别在于需要创建对象的复杂程度上。如果我们创建对象的方法变得复杂了,如上面工厂方法中是创建一个对象Sample,如果我们还有新的...

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

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

    PHP工厂模式、单例模式与注册树模式实例详解

    三种基本设计模式 1、工厂模式:工厂方法或者类生成对象,而不是在代码中直接new 2、单例模式:使某个类的对象仅允许创建一个 3、注册模式:全局共享和交换对象 工厂模式: <?php namespace IMooc; class ...

Global site tag (gtag.js) - Google Analytics