Để thực hiện một lớp học bất biến gì tôi có thể làm là:thực hiện một lớp học bất biến trong java
1) Làm cho lớp thức
2) không cung cấp setters
3) đánh dấu tất cả các biến như thức
Nhưng nếu lớp học của tôi có một đối tượng của một số lớp khác thì, ai đó có thể thay đổi giá trị của đối tượng đó
class MyClass{
final int a;
final OtherClass other
MyClass(int a ,OtherClass other){
this.a = a;
this.other = other;
}
int getA(){
return a;
}
OtherClass getOther(){
return other;
}
public static void main(String ags[]){
MyClass m = new Myclass(1,new OtherClass);
Other o = m.getOther();
o.setSomething(xyz) ; //This is the problem ,How to prevent this?
}
}
không viết phương pháp đã đặt –
@LuiggiMendoza, tôi nghĩ rằng Other/OtherClass có nghĩa là trở thành lớp mà anh ấy không kiểm soát. –
Viết trình bao bọc cho lớp khác và chỉ làm cho getters. – Nican