我正在使用silexphp/Pimple依赖注入(inject)容器(DIC),但不确定如何处理经典工厂模式。例子:父类Animal.php有两个子类,分别是DogAnimal.php和CatAnimal.php。子类的数量可以增长。在这种情况下,我想创建一个工厂来创建新的动物对象或动物类的子对象。Pimple允许为每个服务创建工厂方法。在使用PimpleDIC时,我认为我不想将每个子类(狗、猫等)添加为服务。特别是随着列表的增长。在我看来,这似乎是对DIC的误用,但也许我错了。我是否正确地假设我应该创建动物工厂服务并使用Pimple将依赖项注入(inject)工厂,而工厂又被用来创建
目前我有一个方法可以作为基于给定字符串的工厂。例如:publicAnimalcreateAnimal(Stringaction){if(action.equals("Meow")){returnnewCat();}elseif(action.equals("Woof")){returnnewDog();}...etc.}我想要做的是在类列表增长时避免整个if-else问题。我想我需要有两种方法,一种将字符串注册到类,另一种根据操作的字符串返回类。在Java中有什么好的方法可以做到这一点? 最佳答案 你所做的可能是最好的方法,直到可以
目前我有一个方法可以作为基于给定字符串的工厂。例如:publicAnimalcreateAnimal(Stringaction){if(action.equals("Meow")){returnnewCat();}elseif(action.equals("Woof")){returnnewDog();}...etc.}我想要做的是在类列表增长时避免整个if-else问题。我想我需要有两种方法,一种将字符串注册到类,另一种根据操作的字符串返回类。在Java中有什么好的方法可以做到这一点? 最佳答案 你所做的可能是最好的方法,直到可以