2012-10-03 142 views
0

「這是關於創建對象(產品),而不指定將創建的對象的確切類別」。怎麼會這樣? ,如果有一個evryone從它繼承的抽象類 - 聽起來像「多態性」。無論如何有什麼區別?工廠方法D.P

謝謝!

回答

1

讓我們考慮,我們有一個接口:

public interface IClass {} 

此外,我們有兩個類至極繼承接口(或抽象類,或者隨便什麼其他的基類):

public class First : IClass {} 

public class Second: IClass {} 

的第一個是習慣於產品代碼的員工,第二個是用於測試。

而且你有一個工廠方法:

public IClass GetClass() 
{ 
    if(InTest) return new Second(); 
    else 
    return new First(); 
} 

所以,代碼至極調用此方法不指定要創建的確切類。它只知道如何使用它。