只允许访问一个类的几个属性?

用户755806

我下课了。

SomeClass.java

   public class SomeClass {

         private String name;
         private String id;
         private String access;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getAccess() {
            return access;
        }
        public void setAccess(String access) {
            this.access = access;
        }

      public void doSomeFunctionality(){

       //does some logic using name and id

       }



}

现在,我仅向客户公开上述类的几种方法。我可以做如下。

SomeOtherClass.java

public class SomeOtherClass {
    private SomeClass someClass = new SomeClass();

    public void setName(String name) {
        someClass.setName(name);
    }


    public void setId(String id) {
        this.setId(id);
    }

}

通过上述操作,我可以限制客户端无法访问的一种方法,而仅公开所需的方法。现在,客户端实例化SomeClass并将数据填充到SomeOtherClass.java的someClass属性中

但是现在我如何从SomeOtherClass.java获取填充的数据?

public SomeClass getSomeClass() {
        return someClass;
    }

如果我提供getter方法来像上述那样在SomeOtherClass.java中获取SomeClass,那么即使客户端也可以访问它,而我不想这样做。

但是,如果我可以直接填充someClass实例,那么我可以简单地调用doSomeFunctionality()同一实例。getSomeClass().doSomeFunctionality();我如何克服上述情况?

谢谢!

DJ克莱沃思

您的问题似乎很困惑,但是我认为这是您正在寻找的答案,

让客户获取信息的方法应与让他们设置信息的方法完全相同。您不应该提供对内部SomeClass的访问权限-这会破坏整个观点。因此,如果您只想提供对name属性的读写访问,则外部类应如下所示:

public class SomeOtherClass {
  private SomeClass someClass = new SomeClass();

  public void setName(String name) {
      someClass.setName(name);
  }


  public String getName() {
      return someClass.getName();
  }

}

您不必将其属性设置为可以设置的属性。例如,您也可以允许他们“获取” ID,但不进行设置。如果希望他们可以访问所有属性,请为SomeOtherClass中的所有属性提供吸气剂。如果是这种情况,您可能要考虑创建一个接口,该接口指定所有getter方法,并由SomeClass和SomeOtherClass实施,两个类也都实现它们所需的setter方法。

如果您始终希望提供完全的“读取”访问权限,但又希望提供受限的“写入”访问权限,则可以使用其他体系结构方法,如果您愿意的话,我们可以进行探讨。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何只允许一个类访问另一个类的方法?

来自分类Dev

如何只允许一个点?

来自分类Dev

是否只允许Java中的另一个类创建特定类的实例?

来自分类Dev

htaccess:如何只允许访问一个文件,否则请求index.php?

来自分类Dev

如何只允许特定用户访问已安装分区的一个NTFS文件夹?

来自分类Dev

只允许从一个地址进行PowerShell远程访问

来自分类Dev

如何使用谷歌分析 API 只允许选择一个属性

来自分类Dev

如何只允许一个用户查看“ UpdateView”?

来自分类Dev

如何每个用户只允许一个活动会话

来自分类Dev

每个表只允许一个标识列

来自分类Dev

如何只允许一个活动的useState

来自分类Dev

如何每个用户只允许一个活动会话

来自分类Dev

如何只允许打开继承窗口的一个实例?

来自分类Dev

只允许一个线程获得结果

来自分类Dev

删除空的<p>,但每组只允许一个

来自分类Dev

如何只允许一个用户查看“ UpdateView”?

来自分类Dev

使用RadioButtonFor只允许选择一个单选按钮

来自分类Dev

Perl的opendir()只允许一个操作?

来自分类Dev

JSON 只允许一个顶级值?

来自分类Dev

Spring Security 只允许一个用户连接

来自分类Dev

什么是“JSON 标准只允许一个顶级值”?

来自分类Dev

facebook 应用程序只允许一个标签?

来自分类Dev

访问另一个类的类级别属性?

来自分类Dev

一次只允许一个线程使用一个对象

来自分类Dev

从另一个类(单独的XIB)访问属性

来自分类Dev

如何访问并获取另一个类的属性?

来自分类Dev

从另一个类访问IBOutlet属性

来自分类Dev

如何只允许一个用户使用另一个帐户?

来自分类Dev

只允许从一个目录到另一个目录的.htaccess

Related 相关文章

热门标签

归档