Java 从GUI隐藏方法
我正在用java实现observer模式,以将模型类与GUI分离。 问题是,每次调用update方法时,模型实例都作为参数给出。这意味着,GUI可以调用不应从GUI调用的模型对象上的方法。Java 从GUI隐藏方法,java,user-interface,model-view-controller,Java,User Interface,Model View Controller,我正在用java实现observer模式,以将模型类与GUI分离。 问题是,每次调用update方法时,模型实例都作为参数给出。这意味着,GUI可以调用不应从GUI调用的模型对象上的方法。 如何避免GUI操作模型对象?为了实现这一点,您需要引入另一层,该层将获取模型对象并将其转换为DTO,然后返回GUI,反之亦然。一种用于许多项目的数据访问设计模式 更多信息 希望这能给你一个想法。 为模型类创建一个接口,该接口仅定义GUI可以调用的方法(即,当前由模型类实现的、只应由GUI看到的方法的子集) 让
如何避免GUI操作模型对象?为了实现这一点,您需要引入另一层,该层将获取模型对象并将其转换为DTO,然后返回GUI,反之亦然。一种用于许多项目的数据访问设计模式 更多信息 希望这能给你一个想法。
- 为模型类创建一个接口,该接口仅定义GUI可以调用的方法(即,当前由模型类实现的、只应由GUI看到的方法的子集)
- 让模型类实现这个新接口,这应该很简单,因为方法已经在那里实现了
- 在传递模型的方法中,将参数类型从模型的类更改为模型现在实现的新接口
source>create delegate methods
中,将复制所有方法,将调用转发给内部组合对象。然后你只需删除你不想公开的其他内容。