您使用工厂(方法)模式的真实案例和好处

时间:2010-04-13 09:43:18

标签: design-patterns

您能否提供有关利用工厂(方法)模式的做法? 你获得的好处很大。

感谢。

2 个答案:

答案 0 :(得分:1)

.Net System.Data.Common.DbProviderFactory类可用于编写与DB无关的代码。

var factory = DbProviderFactories.GetFactory(/* here you put provider name, e.g. taken from config */);
using (var connection = factory.CreateConnection())
using (var command = connection.CreateCommand())
{
    connection.ConnectionString = /* some connection string, e.g. from config */;
    command.CommandText = /* some query */;
    command.ExecuteNonQuery();
}

像这样。

答案 1 :(得分:1)

这种模式在OO框架中非常普遍。它的使用是因为它为框架提供了对象创建的控制。然后,您可以将它用于各种事物,缓存对象,使用它来强制单例,错误检查(您请求的对象是否存在?),日志记录以及当有人实例化类时您想要发生的其他任何事情。

作为一种副作用,它也可以提供漂亮的代码。例如在PHP中而不是

$person = new Person();
$person->setName('Mike');

你可以做到

$person = $this->load('Person')->setName('Mike');