安全使用对象

时间:2017-08-10 21:16:44

标签: java oop

我想编写一些代码,可以在一个对象中切换两种模式。

  • 要阅读的模式:userMode
  • MODE to read + write:adminMode
  • userMode应该只能读取我的getter方法。
  • adminMode应该能够调用setter和getter方法。

一些额外的信息:

  • 对象以只读模式提供
  • 动作解锁应切换到读取+写入模式。

重要

编译器应在编译时检查对象的正确用法(取决于模式),即不检查标志。

我已经非常努力了,但是我无法实现我的项目没有布尔标志,这是在任务中,所以请告诉我如何...

这里我的代码与女巫我不满意:

public class Person {
    private String name;
    private double salary;
    private boolean isAdmin;
    /*
     * ...
     */

    public Person(String name, double salary, boolean isAdmin) {
        this.name = name;
        this.salary = salary;
        this.isAdmin = isAdmin;

    }

    public double getSalary() {
        return this.salary;
    }

    public void setSalary(double salary) {
        if (isAdmin) {
            this.salary = salary;
        }

    }

    public void enableAdminMode() {
        isAdmin = true;
    }

    public void disableAdminMode() {
        isAdmin = false;
    }
}

1 个答案:

答案 0 :(得分:1)

创建一个没有二传手的ReadOnlyPerson Person extends ReadOnlyPerson。 然后通过instanceof检查对象是否可写。