知识大全 使用Factory Method模式

Posted

篇首语:人生何适不艰难,赖是胸中万斛宽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用Factory Method模式相关的知识,希望对你有一定的参考价值。

Java深入分析之:使用Factory Method模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  阅读 Polymorphism in its purest form 一文时 我看到了一个不熟悉的术语 Factory method 你能解释一下什么是Factory method并说明如何使用它吗?    A: Factory method(工厂方法)只不过是实例化对象的一种方法的名称 就象工厂一样 Factory method的任务是创建 或制造 对象     让我们看一个例子     每个程序要有一种报错的方式 看看下面的接口     代码清单     public interface Trace     // turn on and off debugging  public void setDebug( boolean debug );    // write out a debug message  public void debug( String message );    // write out an error message  public void error( String message );        假设写了两个实现 一个实现(代码清单 )将信息写到命令行 另一个(代码清单 )则写到文件中     代码清单     public class FileTrace implements Trace     private java io PrintWriter pw;  private boolean debug;    public FileTrace() throws java io IOException   // a real FileTrace would need to obtain the filename somewhere  // for the example I ll hardcode it  pw = new java io PrintWriter( new java io FileWriter( c:\\trace log ) );      public void setDebug( boolean debug )   this debug = debug;      public void debug( String message )   if( debug )  // only print if debug is true  pw println( DEBUG: + message );  pw flush();      public void error( String message )   // always print out errors  pw println( ERROR: + message );  pw flush();          代码清单     public class SystemTrace implements Trace     private boolean debug;    public void setDebug( boolean debug )   this debug = debug;      public void debug( String message )   if( debug )  // only print if debug is true  System out println( DEBUG: + message );      public void error( String message )   // always print out errors  System out println( ERROR: + message );          要使用这两个类中的任一个 需要这样做     代码清单     // some code   SystemTrace log = new SystemTrace();  // code   log debug( entering loog );  // etc     现在 如果想改变程序中用到的 Trace实现 就需要修改实例化 Trace实现 的每个类 使用了Trace的类的数量可能很多 这种修改就需要大量的工作 而且 你一定也想尽可能地避免大量修改你的类     代码清单     public class TraceFactory   public static Trace getTrace()   return new SystemTrace();        getTrace()是一个Factory method 这样 无论什么时候你想得到一个Trace的引用 只用简单地调用TraceFactory getTrace()     代码清单     // some code   Trace log = new TraceFactory getTrace(); cha138/Article/program/Java/gj/201311/27442

相关参考

知识大全 设计模式(1)Factory模式和Abstract Factory模式

设计模式(1)Factory模式和AbstractFactory模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快

知识大全 JavaScript模式之工厂模式(Factory)应用介绍

JavaScript模式之工厂模式(Factory)应用介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 Factory模式的优点

Factory模式的优点  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    

知识大全 .NET 框架中的 Factory 模式

.NET框架中的Factory模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Factory

知识大全 .NET框架中的Factory模式

.NET框架中的Factory模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Factory

知识大全 设计模式在EJB中的应用(下)

设计模式在EJB中的应用(下)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Factory模式

知识大全 解析php函数method

php函数method_exists()与is_callable()的区别在哪?在php面相对象设计过程中往往我们需要在调用某一个方法是否属于某一个类的时候做出判断常用的方法有method_exist

知识大全 关于23种设计模式的有趣见解

  创建型模式FACTORY—追MM少不了请吃饭了麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西虽然口味有所不同但不管你带MM去麦当劳或肯德基只管向服务员说来四个鸡翅就行了麦当劳和肯德基就是生产鸡翅的F

知识大全 IE里Window的Method列表

IE里Window的Method列表  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  alert(

知识大全 C#分部方法(Partial Method)讨论

C#分部方法(PartialMethod)讨论  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C