这引起了激烈的辩论,我想知道这种方法是否有任何问题。
我有一个只包含静态字符串的类:
public class EventConstants {
public static ID = "1";
public static DOMAIN = "local";
public static final DEVICE = "PC";
public static final SOURCE = "local";
}
现在之所以ID和DOMAIN不是final
的原因是因为我选择在给定Spring ConfigurationProperties
的情况下覆盖它们。所以...
public CustomEventConstanstants extends EventConstants {
@Autowired
private PropertyMapper mapper;
@PostConstruct
public void init() {
ID = (mapper.ID != null) ? mapper.ID : EventConstants.ID
DOMAIN = (mapper.DOMAIN != null) ? mapper.DOMAIN : EventConstants.DOMAIN
}
}
该类的想法是用户可以简单地调用一个类,并使用是否由Spring属性配置的适当常量。 示例:
object.methodA(CustomEventConstants.ID) // This will return the configured ID or what's in EventConstants
object.methodB(CustomEventConstants.DEVICE)
我所提出的论点是别人的观点,因为它不能适当地模拟出来,因此不适合进行测试。