如何限制对象的访问?

use*_*635 0 java

我的大学也有类似的有趣任务.例如,有ClassA.我需要限制对象的访问权限,如果今天是星期天客户端无法生成ClassA对象或使用现有的ClassA对象.我想我需要为类创建一些包装器,否则我需要在ClassA的每个方法中检查一天的条件.是否有任何设计模式?拜托,我希望你能帮助我.

Ese*_*gün 5

工厂模式是您正在寻找的.您将参数传递给工厂类("包装器"),它负责创建正确类型的对象.例如:

class ClassA implements MyInterface { ... }
class ClassB implements MyInterface { ... }

class MyFactory {
    public MyInterface create(int dayOfTheWeek) {
        if (dayOfTheWeek == 0) {
            return new ClassA();
        } else {
            return new ClassB();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当您需要一个新对象时,MyFactory会决定实际的类:

MyFactory factory = new MyFactory();
MyInterface object = factory.create(dayOfTheWeek);
...
Run Code Online (Sandbox Code Playgroud)