Design patterns 您使用工厂(方法)模式的实际案例及其好处
您能否提供利用工厂(方法)模式的实践? 你得到了很大的好处Design patterns 您使用工厂(方法)模式的实际案例及其好处,design-patterns,Design Patterns,您能否提供利用工厂(方法)模式的实践? 你得到了很大的好处 谢谢。.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
谢谢。.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();
}
类似这样的情况。这种模式在OO框架中非常普遍。之所以使用它,是因为它使框架能够控制对象的创建。然后,您可以将它用于各种事情,缓存对象,使用它强制单例,错误检查(您请求的对象是否存在?),日志记录,以及在有人实例化类时您希望发生的任何事情 作为一种副作用,它还可以生成漂亮的代码。例如,使用PHP而不是
$person = new Person();
$person->setName('Mike');
你能行
$person = $this->load('Person')->setName('Mike');
你是在问工厂方法模式还是工厂模式?@Mark:两者都有。他们有着相似的目标,不是吗?不是真的。工厂方法和抽象工厂或多或少都有相同的目标,即将创建和使用分开,并启用松散耦合。相反,工厂模式或多或少只是描述了一个便利类,在我看来,它不是很有用。