工厂模式动态方法
2022-09-03 17:04:53
我试图理解工厂模式。如果有很多实现,那么我的工厂模式将有很多如果其他或切换的情况。而且每次我引入新的实现时,我都应该更改我的工厂代码
就像在下面的例子中,如果让我们假设狗鸭子正在实现像明天一样的宠物接口,如果许多动物实现宠物接口,我的工厂长长,如果其他代码或开关案例。有没有办法通过引入更动态的方法来解决这个问题?
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