閱讀
A: 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
private boolean debug;
public FileTrace() throws java
// a real FileTrace would need to obtain the filename somewhere
// for the example I
pw = new java
}
public void setDebug( boolean debug ) {
this
}
public void debug( String message ) {
if( debug ) { // only print if debug is true
pw
pw
}
}
public void error( String message ) {
// always print out errors
pw
pw
}
}
代碼清單
public class SystemTrace implements Trace {
private boolean debug;
public void setDebug( boolean debug ) {
this
}
public void debug( String message ) {
if( debug ) { // only print if debug is true
System
}
}
public void error( String message ) {
// always print out errors
System
}
}
要使用這兩個類中的任一個
代碼清單
//
SystemTrace log = new SystemTrace();
//
log
//
現在
代碼清單
public class TraceFactory {
public static Trace getTrace() {
return new SystemTrace();
}
}
getTrace()是一個Factory method
代碼清單
//
Trace log = new TraceFactory
From:http://tw.wingwit.com/Article/program/Java/gj/201311/27442.html