相关疑难解决方法(0)

为什么我们需要抽象工厂设计模式?

大多数定义说:

抽象工厂提供了一个接口,用于创建相关对象的族,而无需指定其具体类

抽象工厂模式的用途是什么,因为我们可以通过创建具体类本身的对象来实现任务.为什么我们有一个工厂方法来创建Concrete类的对象?

请提供我必须实现abstractFactory模式的任何现实生活示例?

design-patterns abstract-factory

123
推荐指数
4
解决办法
8万
查看次数

在Java中创建一个不依赖于if-else的工厂方法

目前我有一个基于给定String充当工厂的方法.例如:

public Animal createAnimal(String action)
{
    if (action.equals("Meow"))
    {
        return new Cat();
    }
    else if (action.equals("Woof"))
    {
        return new Dog();
    }

    ...
    etc.
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在类列表增长时避免整个if-else问题.我想我需要有两个方法,一个将字符串注册到类,另一个根据操作的字符串返回类.

在Java中这样做的好方法是什么?

java string factory

38
推荐指数
5
解决办法
2万
查看次数

如何解决"成长如果声明"的问题?

我一直在阅读有关设计模式的一些内容,并想要一些观点.考虑以下:

Dim objGruntWorker as IGruntWorker

if SomeCriteria then
   objGruntWorker = new GoFor()
else if SomeOtherCriteria then
   objGruntWorker = new Newb()
else if SomeCriteriaAndTheKitchenSink then
   objGruntWorker = new CubeRat()
end if

objGruntWorker.GetBreakfast()
system.threading.thread.sleep(GetMilliSecondsFromHours(4))
objGruntWorker.GetLunch()
Run Code Online (Sandbox Code Playgroud)

每次出现新标准时,上述代码都会增长.我已经看到了这样的代码,并且无知中自己写了一些代码.该如何解决?这种反模式是否具有更"正式"的名称?谢谢你的帮助!

编辑:另一个考虑因素是我想避免重新编译现有的IGruntWorker简单添加新实现的实现.

.net design-patterns

19
推荐指数
4
解决办法
754
查看次数

标签 统计

design-patterns ×2

.net ×1

abstract-factory ×1

factory ×1

java ×1

string ×1