c#中的工厂与工厂方法模式
factory vs factory method pattern in c#
谁能帮我理解以下关于工厂方法模式的疑问?
我以 this link 为例。
1.what工厂方法模式中是否需要抽象class工厂?什么
如果使用正常 class?
2.It 声明代码中的更改不会影响客户端。但
如果添加了新的 class product3,则相应的
客户端代码也需要更改。(根据以下代码)。那么这种设计模式有什么优势呢?
3.What 是 objFactories[0] = new concreteFactoryforProduct1();
优于 concreteFactoryforProduct1 factory = new concreteFactoryforProduct1();
的优势
Factory[] objFactories = new Factory[2];
objFactories[0] = new concreteFactoryforProduct1();
objFactories[1] = new concreteFactoryforProduct2();
foreach (Factory objFactory in objFactories)
{
Product objProduct = objFactory.GetProduct();
objProduct.GetDetails();
}
4.Why我们不能在简单的设计模式中实现开闭原则吗?
(1) 根据抽象的最简单用法 类,添加抽象避免使用 new Factory() 创建实例。 (因为它没有意义,与动物和大象相同 -> 动物只是一种抽象,不存在称为动物的实体)
(2) 这只是一个演示。世界上没有用例来列出可用的工厂。
(3)例子中,是一个Factory数组,你的问题不适用。
(4) 我想你问的是不使用工厂方法模式的情况。可能有很多情况。您可以确定是否尝试实施它。
谁能帮我理解以下关于工厂方法模式的疑问?
我以 this link 为例。
1.what工厂方法模式中是否需要抽象class工厂?什么 如果使用正常 class?
2.It 声明代码中的更改不会影响客户端。但 如果添加了新的 class product3,则相应的 客户端代码也需要更改。(根据以下代码)。那么这种设计模式有什么优势呢?
3.What 是 objFactories[0] = new concreteFactoryforProduct1();
优于 concreteFactoryforProduct1 factory = new concreteFactoryforProduct1();
Factory[] objFactories = new Factory[2];
objFactories[0] = new concreteFactoryforProduct1();
objFactories[1] = new concreteFactoryforProduct2();
foreach (Factory objFactory in objFactories)
{
Product objProduct = objFactory.GetProduct();
objProduct.GetDetails();
}
4.Why我们不能在简单的设计模式中实现开闭原则吗?
(1) 根据抽象的最简单用法 类,添加抽象避免使用 new Factory() 创建实例。 (因为它没有意义,与动物和大象相同 -> 动物只是一种抽象,不存在称为动物的实体)
(2) 这只是一个演示。世界上没有用例来列出可用的工厂。
(3)例子中,是一个Factory数组,你的问题不适用。
(4) 我想你问的是不使用工厂方法模式的情况。可能有很多情况。您可以确定是否尝试实施它。