我正在尝试构建一个只能由GameController修改的类,但可以访问任何类。我应该研究什么设计模式来实现这个目标?
*我在Java中构建它,GameController是我的Main类。所以,我无法在GameController类中创建私有实例。希望就是那么简单。
答案 0 :(得分:2)
没有"设计模式"为了那个原因。相反,您只需使用Java的访问修饰符,通过提供public
getter但仅使用 package-private setter或其他mutator方法(假设GameController
使用的类是在同一个包中。)
答案 1 :(得分:0)
您可以创建一个界面层次结构,其中顶级是只读的,下一级是添加setter。 该类实现了读写接口。 控制器获取具有可写接口的实例,所有其他实例都使用只读接口。
答案 2 :(得分:0)
但是可以访问任何课程吗? 我认为你在这里尝试实现的是每个类访问和共享Controller类的相同实例。你可以使用mvc模式,但如果你为时已晚,需要以某种方式共享相同的实例,你可以使用单一模式
public class getGame{
private static GameController gameController;
public static GameController getController(){
if(gameController==null){
gameController = new GameController();
}
return gameController;
}
}
您不必担心在上面的类上创建实例,因为每个字段都标记为静态。