ฉันพิจารณาข้อกำหนดที่ว่าฟิลด์จะต้องเป็นที่สิ้นสุดว่ามีข้อ จำกัด เกินควรและเป็นความผิดพลาดของนักออกแบบภาษา Java มีหลายครั้งเช่นการจัดการทรีเมื่อคุณต้องการกำหนดค่าคงที่ในการนำไปใช้งานซึ่งจำเป็นสำหรับการดำเนินการกับอ็อบเจ็กต์ประเภทอินเทอร์เฟซ การเลือกเส้นทางรหัสบนคลาสการนำไปใช้คือ kludge วิธีแก้ปัญหาที่ฉันใช้คือกำหนดฟังก์ชันอินเทอร์เฟซและใช้งานโดยส่งคืนลิเทอรัล:
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";
}
...
}
อย่างไรก็ตามมันจะง่ายกว่าชัดเจนและไม่ค่อยมีแนวโน้มที่จะนำไปใช้งานที่ผิดปกติในการใช้ไวยากรณ์นี้:
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";
...
}