我實現了Factory Method模式,但是檢查了幾個例子,我無法確定擴展產品的具體類而不是創建抽象類或接口是否正確......僅僅用於示例(PHP)。非抽象產品的方法工廠
所以,我有我的抽象工廠和他們的具體工廠:
interface BookFactoryInterface
{
public function createBook();
}
class ElectronicBookFactory implements BookFactoryInterface
{
public function createBook()
{
return new ElectronicBook();
}
}
class PaperBookFactory implements BookFactoryInterface
{
public function createBook()
{
return new PaperBook();
}
}
現在我已經看到了所有的例子是通常的產品從抽象類或接口擴展,但是當我測試我意識到在我的情況下並不需要那個,我需要的是一個具有共同行爲的具體類,然後是我的其餘子類。
class Book
{
/*
All properties like title, authors, publicationDate
here, with the corresponding methods.
*/
}
class ElectronicBook extends Book
{
//...
}
class PaperBook extends Book
{
//...
}
的類的實例仍然被導出到子類,所以我真的相信這是一個工廠方法實現,但我能找到這樣的另一個示例代碼。
所以問題是:這仍然是一個工廠方法的實現?如果不是爲什麼?