- 使用界面定义您的应用程序做什么
- 创建访问服务的主入口点,仅返回接口
- 我不会真正隐藏实现类。您永远无法真正将它们隐藏在Java中,并且那些对技术感兴趣的人可能只是使用调试器启动您的应用程序。例如,仅不提供公共构造函数
关于此评论:
肖恩,您能否详细说明您的答案?…
实现我的第二个要点的一种方法是使用服务查找类,例如
public class Lookup { private static final Foo foo = new FooImpl(); public static Foo getFoo() { return foo; }}Foo是一个接口,
FooImpl一个实现类(如果要强制执行它不能由客户端实例化,则可以是程序包私有的)



