加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

如何将Java API的内部结构隐藏到世界其他地方

发布时间:2020-12-15 00:09:24 所属栏目:Java 来源:网络整理
导读:我正在开发一个 Java Api来做事情(秘密,呃,他们). 有没有办法隐藏类,以及API的内部结构? 我到现在为止发现: 使用内部类(丑陋的方式,我不想把全部放在类文件中) 所有类在一个包中,以便我可以使用“包”-visibilty(也丑陋,我需要更多的包) 例: ---package n
我正在开发一个 Java Api来做事情(秘密,呃,他们).

有没有办法隐藏类,以及API的内部结构?

我到现在为止发现:

>使用内部类(丑陋的方式,我不想把全部放在类文件中)
>所有类在一个包中,以便我可以使用“包”-visibilty(也丑陋,我需要更多的包)

例:

---
package net.my.app;
//this is the Public Access
class MyPublicClass{
    public void somePublicFunction(){ 
        //access to not visibil classes
    }
}

---
package net.my.app.notvisible:
//this is what i want to hide
class MyNOTPublicClass{
    ...
}
---

有任何想法吗?
谢谢!

解决方法

>使用界面来定义你的
应用程序
>创建主入口点以访问服务,仅返回接口
>我不会打扰实际隐藏实现类.你永远不会真的将它们隐藏在Java中,那些技术上有兴趣的人可能只是用一个调试器启动你的应用程序.例如,不提供公共构造函数

关于这个评论:

Sean,would you elaborate a little
more on your answer? …

实现我的第二个项目符号的一种方法就是使用一个服务查找类,例如

public class Lookup {
    private static final Foo foo = new FooImpl();
    public static Foo getFoo() { 
        return foo; 
    }
}

Foo是一个接口,FooImpl是一个实现类(如果要强制它不能被客户端实例化,它可以是私有的)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读