大多数定义说:
抽象工厂提供了一个接口,用于创建相关对象的族,而无需指定其具体类
抽象工厂模式的用途是什么,因为我们可以通过创建具体类本身的对象来实现任务.为什么我们有一个工厂方法来创建Concrete类的对象?
请提供我必须实现abstractFactory模式的任何现实生活示例?
目前我有一个基于给定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中这样做的好方法是什么?
我一直在阅读有关设计模式的一些内容,并想要一些观点.考虑以下:
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简单添加新实现的实现.