假设我有5个对象。我希望这个特定对象的数据可以被2个对象访问,但不能被其他两个对象访问。我怎样才能做到这一点?

时间:2015-10-22 03:17:34

标签: java

假设我有5个对象。我想让这个特定对象的数据可以被2个对象访问,但不能被其他两个对象访问。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

非常通用的问题!在java中,我可能建议您设置包装,使数据提供者的包和预期允许的数据使用者相同,并且数据提供者的方法被定义为" protected",并且非特权的两个类在一个单独的包中。

但这只是大约一百万种方法中的一种,你可能会接近这样一个普遍的问题。

答案 1 :(得分:0)

一种简单的方法:在每个类中设置一个布尔值。

public class MyObject{
    boolean hasPermission;
    Data myData;

    public Data getData(boolean permission){
        if(permission)
           return myData;
        else
           return null;
    }
}

每当你创建对象......

MyObject hasData = new MyObject();
MyObject iHaveAccess = new MyObject();
MyObject iHaveAccess2 = new MyObject();
MyObject iDontHaveAccess = new MyObject();
MyObject iDontHaveAccess2 = new MyObject();

iHaveAccess.hasPermission = true;
iHaveAccess2.hasPermission = true;
iDontHaveAccess.hasPermission = false;
iDontHaveAccess2.hasPermission = false;

如果您想获取数据

hasData.getData(iHaveAccess.hasPermission); // returns data
hasData.getData(iDontHaveAccess.hasPermission); // returns null

显然,不要像我一样按字面意思实现它,用循环来做。您还可以在构造函数中设置hasPermission布尔值。我假设所有5个对象都是相同的,如果它们也不是那么好。