我实现了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
{
//...
}
的类的实例仍然被导出到子类,所以我真的相信这是一个工厂方法实现,但我能找到这样的另一个示例代码。
所以问题是:这仍然是一个工厂方法的实现?如果不是为什么?