API设计 - 限制访问

时间:2015-02-11 00:53:16

标签: java api api-design

我有一个我正在设计的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可以调用它们。但是,为了使课程尽可能灵活地使用,这是否过于严格?

0 个答案:

没有答案