我正在努力了解工厂模式.如果有很多实现,那么我的工厂模式将会有很多如果还是开关的情况.而且每次我介绍一个新的实现,我应该更改我的工厂代码
像下面的例子,如果让我们假设狗鸭正在实施宠物界面,如果许多动物实现宠物界面,我的工厂会很长时间,如果有其他的代码或开关案例,那么明天.有什么办法可以用更多的动态方法解决这个问题吗?
package com.javapapers.sample.designpattern.factorymethod; //Factory method pattern implementation that instantiates objects based on logic public class PetFactory { public Pet getPet(String petType) { Pet pet = null; // based on logic factory instantiates an object if ("bark".equals(petType)) pet = new Dog(); else if ("quack".equals(petType)) pet = new Duck(); return pet; }
如果动物生长
if ("bark".equals(petType)) pet = new Dog(); else if ("quack".equals(petType)) pet = new Duck(); else if ("mno".equals(petType)) pet = new MNO(); else if ("jkl".equals(petType)) pet = new JKL(); else if ("ghi".equals(petType)) pet = new GHI(); else if ("def".equals(petType)) pet = new DEF(); ...... else if ("abc".equals(petType)) pet = new ABC(); return pet