在Java上封装数据

时间:2015-07-02 22:03:38

标签: java encapsulation factory-pattern

我正在建立一个API,我希望以下完成维护包

com.example.objects
 -> public someObject (class)
     -> int someInt = 500;

com.example.database
 -> private database (class)
     -> void someMethod() {
          (i need access to someInt here)
        }

问题来了,因为我需要从数据库方法中的someObject访问常量some​​Int。但与此同时,我不希望API的外部用户能够看到someInt的值。

如果没有两个类在同一个包中,我找不到一种方法,因为(朋友c ++)关系在java中不存在而且我不想强迫它,因为它被认为是一个糟糕的设计的java。

有什么建议吗?

1 个答案:

答案 0 :(得分:-2)

可能是你可以将someInt声明为常量(如果someInt的值永远不会改变)但是如果没有,你可以做的是在Database类中实例化SomeObject并使用封装方法来获取或设置a的值SomeObject的变量。如果你认为someObject将在没有更改的更多类中实例化,你可以使用单例模式来充分利用内存。