在我的当前项目中,我有一个类将其实例存储在变量中。此实例应该可被项目中的所有其他类访问,但只能由其自己的类更改。
如何实现这一点?
如何实现这一点?
编写一个public
的getter方法,但不需要public
的setter方法。同时,将字段本身设置为private
String
是不可变Class
的常见例子。class
成为immutable
:
class
为final
,或使用static
工厂并将构造函数设为私有。private
和final
no-argument constructor
结合后续调用setXXX
方法。setXXX
方法,而是任何可以更改状态的方法有人建议“为私有字段提供公共getter但不提供公共setter。”
注意:这只适用于字段是原始类型的情况。
如果它是具有setter的对象,则内容仍可修改;因此不是只读的。
如果Java语言可以提供某些构造来使返回类型变成只读而不必进行深层复制/克隆,那将很有趣。
我想象中的例子:
ReadOnly getEmployee() {
...}
单例模式的样板代码可以在许多地方找到,例如请参见http://www.javacoffeebreak.com/articles/designpatterns/index.html
请注意,许多人认为单例模式是一种反模式,因为一旦您的应用程序中充斥着对单例的引用,就很难摆脱它。