在Springboot中对具有统一接口实现的Service通过工厂模式进行管理

1、工厂类

//工厂类
@Service
public class AbilityFactory {

    @Autowired
    private Map<String , ApiAbility> apiAbilityFactoryMap = new ConcurrentHashMap<>();

    public ApiAbility factoryMode(String key){
        return apiAbilityFactoryMap.get(key);
    }

}

2、统一接口类

public interface ApiAbility {

    String save();

    String delete();

    String list();

    String update();
}

3、接口实现类

@Component("AppleAbility")
public class AppleAbility implements ApiAbility {


    @Override
    public String save() {
        return null;
    }

    @Override
    public String delete() {
        return null;
    }

    @Override
    public String list() {
        return null;
    }

    @Override
    public String update() {
        return null;
    }
}

4、使用

public class test{

	@Resource 
	AbilityFactory  abilityFactory;
	@Test
	public test(){
		abilityFactory.factoryMode("appleAbility").save();
	}
}

这种管理模式,可以将许多具有相同类型接口功能的实现类进行统一管理,让Service工厂来管理所有的这些类,减少代码冗余。

你可能感兴趣的:(spring,boot,java,mybatis)