dev*_*ull 26 design-patterns factory-pattern
我刚读了Factory Method.据我所知,它提供了一种将实例化委托给子类的方法.但我无法理解现实场景中的可能用途.
任何人都可以给出一个典型的例子,展示如何使用Factory方法模式,以便我可以与我所读到的内容相关联.
工厂方法模式是最佳解决方案的问题陈述足以使其清楚.
Sar*_*raz 51
实现工厂设计模式的类充当多个类之间的桥梁.考虑使用SQL Server和Oracle等多个数据库服务器的示例.如果您正在使用SQL Server数据库开发应用程序作为后端,但是将来需要将后端数据库更改为oracle,如果您没有按照工厂设计模式编写代码,则需要修改所有代码.
在工厂设计模式中,您需要做很少的工作才能实现这一目标.实施工厂设计模式的课程会照顾您并减轻您的负担.从数据库服务器切换根本不会打扰你.您只需要在配置文件中进行一些小的更改.
一个示例PHP代码:
interface DbTable
{
public function create($array);
}
class MySqlTable implements DbTable
{
public function create($array)
{
// add a record to a table on mysql database
}
}
class OracleTable implements DbTable
{
public function create($array)
{
// add a record to a table on oracle database
}
}
class TableFactory
{
private $dbTypeConfig = 'mysql';
public function createTable()
{
if ($this->dbTypeConfig == 'mysql') {
return new MySqlTable();
} elseif ($this->dbTypeConfig == 'oracle') {
return new OracleTable();
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)