我有一个我正在设计的API,但是我想知道为了灵活地限制谁可以调用方法,什么是合适的。
简单地说,我的API是另一个API的外观,并试图简化大量的使用。有一些反序列化的方法,我正在建立API调用本身,但我想知道是否应该限制它,以便API是唯一的可以调用它的东西:
public static SLocation deserialize(Map<String, Object> config) {
Validate.isTrue(Reflections.accessedFromAPI(), "Can only be called by <API>!"); //Reads the stack
return new SLocation(config);
}
VS
public static SLocation deserialize(Map<String, Object> config) {
return new SLocation(config);
}
通常,我自己的API的用户不应该知道这些可序列化类的内部实现,也不应该知道它们如何写入文件。因此,在我看来,限制它是有意义的,只有&#34;上游&#34; API可以调用它们。但是,为了使课程尽可能灵活地使用,这是否过于严格?