从对象锁定方法(Java)

从对象锁定方法(Java),java,oop,Java,Oop,我有以下问题 我有一个java类 public class A { login() getRights() methodA() methodB() methodC() } 现在我有下面的场景。我创建了一个类A的实例。现在我想在登录时使用登录函数进行检查。如果没有,则对象无权调用方法a、b和c。之后,我想用getRights()函数检查对象是否有权调用方法b和c。是否有智能实现?否则,我必须从类a继承并覆盖被阻止的函数?您可以在调用methodA(

我有以下问题

我有一个java类

 public class A {
    login()
    getRights()
    methodA()
    methodB()
    methodC()
   }

现在我有下面的场景。我创建了一个类A的实例。现在我想在登录时使用登录函数进行检查。如果没有,则对象无权调用方法a、b和c。之后,我想用getRights()函数检查对象是否有权调用方法b和c。是否有智能实现?否则,我必须从类a继承并覆盖被阻止的函数?

您可以在调用methodA()之前调用login(),也可以在methodA()内部编写对login()的调用,这样methodA()内部的代码在没有先运行login()的情况下无法运行。然后,如果对象调用methodA(),但没有从login()返回正确的值,则可以在继续之前抛出异常。然后对B和C中的getRights()执行相同的操作。

如果调用了方法a、B和C,但您未登录,则可能引发异常。您只需要使用变量来设置是否登录,以及是否抛出异常,getRights只使用该变量。

如果没有,则对象无权调用方法a、b和c
。确切地说,我不确定我是否正确理解您,但您可以让这些方法在一开始就检查权限,或者使用某种拦截器来检查权限(取决于您使用的框架,通常的方法是AOP)。也就是说,在一个类中包含身份验证、授权和业务逻辑是非常奇怪的设计。我必须在任何方法开始时检查权限