22
วิธีเปรียบเทียบวัตถุด้วยหลาย ๆ ฟิลด์
สมมติว่าคุณมีวัตถุบางอย่างที่มีหลายฟิลด์สามารถเปรียบเทียบได้โดย: public class Person { private String firstName; private String lastName; private String age; /* Constructors */ /* Methods */ } ดังนั้นในตัวอย่างนี้เมื่อคุณถามว่า: a.compareTo(b) > 0 คุณอาจจะถามว่านามสกุลมาก่อน b หรือไม่หรือว่าเก่ากว่า b เป็นต้น อะไรคือวิธีที่สะอาดที่สุดในการเปิดใช้การเปรียบเทียบหลายอย่างระหว่างวัตถุประเภทนี้โดยไม่เพิ่มความยุ่งเหยิงหรือค่าใช้จ่ายที่ไม่จำเป็น? java.lang.Comparable อินเตอร์เฟสอนุญาตให้ทำการเปรียบเทียบโดยหนึ่งฟิลด์เท่านั้น การเพิ่มวิธีการเปรียบเทียบจำนวนมาก (เช่นcompareByFirstName(), compareByAge()ฯลฯ ... ) มีความยุ่งเหยิงในความคิดของฉัน ดังนั้นวิธีที่ดีที่สุดที่จะไปเกี่ยวกับเรื่องนี้คืออะไร?