【发布时间】:2012-08-19 11:04:44
【问题描述】:
抱歉标题,我想不出更自我描述的标题。
在我正在开发的独立应用程序(这是一项大学作业)中,我遇到了这个问题:
我的实体(或模型对象或业务对象等)只不过是 POJO。
当然会有(将会)很多类使用它们,但其中一些类不应该被允许修改它们的值(例如,使用它们的设置器);我们可以说我需要将一个对象传递给具有不同权限的不同类:对某些类只读,对其他允许修改对象状态的类读写。
一个例子是一个只显示对象信息的 GUI 窗口:我想确保这个类完全不知道如何修改对象的状态。
我阅读了很多相关问题(只读接口、只读实现、防御性副本等)的主题,但没有找到适合我的情况的任何内容。
假设我想仅将对象的 setter 方法的访问权限授予特定类,但我找不到实现此目的的方法。
我最初认为接口会很好(例如 ReadOnlyObject 带有 getter 和 WriteOnlyObject 带有 setter 和 Object 实现它们)但问题是 WriteOnlyObject 接口很容易被任何类访问使用ReadOnlyObject。
除此之外,我不认为只使用 getter 或 setter 编写接口是一种好习惯。
请帮忙! @_@
【问题讨论】:
-
您的业务对象可以实现接口,每个接口都提供一个 getter 方法的子集来访问业务对象的数据。
标签: java design-patterns interface readonly