Tôi coi yêu cầu các trường phải là cuối cùng là quá hạn chế và là một sai lầm của các nhà thiết kế ngôn ngữ Java. Đôi khi, ví dụ như xử lý cây, khi bạn cần thiết lập các hằng số trong việc triển khai được yêu cầu để thực hiện các hoạt động trên một đối tượng của kiểu giao diện. Việc chọn một đường dẫn mã trên lớp thực thi là một k bùn. Cách giải quyết mà tôi sử dụng là xác định một chức năng giao diện và triển khai nó bằng cách trả về một ký tự:
public interface iMine {
String __ImplementationConstant();
...
}
public class AClass implements iMine {
public String __ImplementationConstant(){
return "AClass value for the Implementation Constant";
}
...
}
public class BClass implements iMine {
public String __ImplementationConstant(){
return "BClass value for the Implementation Constant";
}
...
}
Tuy nhiên, sẽ đơn giản hơn, rõ ràng hơn và ít bị sai lệch hơn khi sử dụng cú pháp này:
public interface iMine {
String __ImplementationConstant;
...
}
public class AClass implements iMine {
public static String __ImplementationConstant =
"AClass value for the Implementation Constant";
...
}
public class BClass implements iMine {
public static String __ImplementationConstant =
"BClass value for the Implementation Constant";
...
}