ครั้งแรกที่ผมต้องชี้ให้เห็นความจริงที่ว่าCustomException
ไม่ขยายจึงไม่ได้จริงๆException
Exception
ที่กล่าวว่า:
หากคุณไม่สนใจหลักการพึ่งพาการพึ่งพา (Dependency Inversion Principle ) ให้ปล่อยทิ้งไว้เหมือนเดิม มันตกลงที่ดีเลิศสำหรับอินเตอร์เฟซที่ขึ้นอยู่กับการเรียนที่เป็นรูปธรรมเช่นการเชื่อมต่อขึ้นอยู่กับหลาย ๆString
หรือObject
ที่มีการเรียนคอนกรีต สิ่งที่เรามักจะเชื่อว่าคลาสที่เป็นของ Java SDK นั้นมีความเสถียรมากกว่า
ในทางตรงกันข้าม:
หากคุณต้องการติดตามกรมทรัพย์สินทางปัญญา (ซึ่งมีประโยชน์มากมายและเป็นคำแนะนำของฉัน) คุณต้องทำหนึ่งในสองสิ่งต่อไปนี้:
ตัวเลือกที่ 1
- ทำให้
CustomException
เป็นนามธรรม
- เก็บ
void onError(CustomException ex)
ตามที่มันเป็น
ตัวเลือก 2
- สร้าง
CustomException
อินเตอร์เฟส
- เก็บ
void onError(CustomException ex)
ตามที่มันเป็น
ด้วยตัวเลือกใดตัวเลือกหนึ่งคุณจะต้องเข้ากับกรมทรัพย์สินทางปัญญาเนื่องจากอินเตอร์เฟสจะไม่ขึ้นอยู่กับคลาสคอนกรีตใด ๆ
ในแอปพลิเคชันโดยตรงของการผกผันของการพึ่งพาบทคัดย่อเป็นเจ้าของโดยชั้นบน / นโยบาย สถาปัตยกรรมนี้จัดกลุ่มส่วนประกอบ / นโยบายที่สูงขึ้นและบทคัดย่อที่กำหนดบริการที่ต่ำกว่าไว้ในแพ็คเกจเดียวกัน เลเยอร์ระดับล่างถูกสร้างขึ้นโดยการสืบทอด / การนำไปใช้ของคลาสนามธรรมหรืออินเทอร์เฟซเหล่านี้ Martin, Robert C. (2003)
- หลักการและรูปแบบและวิธีการพัฒนาซอฟต์แวร์แบบว่องไว ศิษย์ฮอลล์. pp. 127–131 ไอ 978-0135974445