建立實現類:public
inte***ce sender
建工廠類:public
class
mailsender
implements
sender
}
測試類:public
class sendfactory else
if ("sms".equals(type)) else
} }
輸出:this is sms sender!public
class factorytest
}
測試類如下:public
class sendfactory
public sender producesms()
}
輸出:this is mailsender!public
class factorytest
}
測試類:public
class sendfactory
public
static sender producesms()
}
輸出:this is mailsender!public
class factorytest
}
工廠模式適合:凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過工廠方法模式進行建立。在以上的三種模式中,第一種如果傳入的字串有誤,不能正確建立物件,第三種相對於第二種,不需要例項化工廠類,所以,大多數情況下,我們會選用第三種——靜態工廠方法模式。
例子:
兩個實現類:public
inte***ce sender
兩個工廠類的統一介面:public
class
mailsender
implements
sender
} public
class
smssender
implements
sender
}
兩個工廠類:public
inte***ce provider
測試類:public
class
sendmailfactory
implements
provider
}public
class
sendsmsfactory
implements
provider
}
這個模式的好處就是,如果你現在想增加乙個功能:發及時資訊,則只需做乙個實現類,實現sender介面,同時做乙個工廠類,實現provider介面,就ok了,無需去改動現成的**。這樣做,拓展性較好!public
class test
}
java設計模式之工廠模式
工廠模式是一種經常被使用到的模式,根據工廠模式實現的類可以根據提供的資料生成一組類中某乙個類的例項,通常這一組類有乙個公共的抽象父類或者是介面並且實現了相同的方法,但是這些方法針對不同的資料進行了不同的操作。首先需要定義乙個父類或者介面,該類的子類通過不同的方法實現了父類中的方法。然後需要定義乙個工...
java設計模式之工廠模式
1 只要方法裡面控制產生物件的方法,就可稱為工廠相關方法。2 單例 多例。3 簡單工廠 例子 交通工具 多種交通工具 多種交通工具不同的生產過程 4 介面抽象類使用 一般乙個特性使用介面 會飛的 大概能定義為乙個物體使用抽象類 由於類的多繼承性,建議多用介面。5 抽象工廠 換掉一些列的產品,擴充套件...
java設計模式之工廠模式
工廠模式包括工廠方法模式和抽象工廠模式兩種。實際是將介面的例項建立交給乙個工廠類來做。1.工廠方法模式 又包括普通工廠模式 多方法工廠模式 靜態工廠模式三種設計方式。例如 介面 public inte ce father 實現類public class child1 implements fathe...