国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Java Q&A: 使用Factory Method模式

2019-11-18 14:16:36
字體:
供稿:網(wǎng)友

java Q&A: 使用Factory Method模式

Q: 閱讀 "Polymorphism in its purest form" 一文時,我看到了一個不熟悉的術(shù)語 "Factory method"。你能解釋一下什么是Factory method并說明如何使用它嗎?

A: Factory method(工廠方法)只不過是實例化對象的一種方法的名稱。就象工廠一樣,F(xiàn)actory method的任務(wù)是創(chuàng)建--或制造--對象。

讓我們看一個例子。

每個程序要有一種報錯的方式。看看下面的接口:

代碼清單1
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 );

}

假設(shè)寫了兩個實現(xiàn)。一個實現(xiàn)(代碼清單3)將信息寫到命令行,另一個(代碼清單2)則寫到文件中。

代碼清單2
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: race.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();
      }

}

代碼清單3
public class SystemTrace implements Trace {



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 农安县| 松潘县| 余庆县| 白河县| 墨玉县| 文安县| 张家港市| 五原县| 黄冈市| 宁国市| 永清县| 阳新县| 滦南县| 城口县| 昔阳县| 合江县| 永和县| 绥宁县| 鹿泉市| 常熟市| 确山县| 乐陵市| 高要市| 五指山市| 靖远县| 交口县| 广河县| 银川市| 仁怀市| 黑水县| 富锦市| 两当县| 始兴县| 新乡市| 五寨县| 呼和浩特市| 贵定县| 四会市| 二连浩特市| 绥滨县| 微山县|