知识大全 使用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模式的优点 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
.NET框架中的Factory模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Factory
.NET框架中的Factory模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Factory
设计模式在EJB中的应用(下) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Factory模式
php函数method_exists()与is_callable()的区别在哪?在php面相对象设计过程中往往我们需要在调用某一个方法是否属于某一个类的时候做出判断常用的方法有method_exist
创建型模式FACTORY—追MM少不了请吃饭了麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西虽然口味有所不同但不管你带MM去麦当劳或肯德基只管向服务员说来四个鸡翅就行了麦当劳和肯德基就是生产鸡翅的F
IE里Window的Method列表 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! alert(
C#分部方法(PartialMethod)讨论 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C