"สวัสดี Amigo เมื่อวานคุณเรียนแบบนามธรรม ตอนนี้ได้เวลาเพิ่มพูนความรู้ของเราแล้ว ฉันต้องการสอนวิธีใช้คลาสนามธรรมอย่างถูกต้อง"
เป็นการยากที่จะหาการเปรียบเทียบในโลกแห่งความเป็นจริงสำหรับคลาสนามธรรม คลาสมักจะเป็นแบบจำลองของเอนทิตีบางอย่าง แต่คลาสนามธรรมมีเมธอดที่ยังไม่ได้ใช้งาน และอาจมีเมธอดที่นำไปใช้แล้ว นั่นหมายความว่าอย่างไร? เราสามารถหาความคล้ายคลึงใดสำหรับคลาสนามธรรมได้บ้าง มีเรื่องแบบนี้ในโลกแห่งความเป็นจริงด้วยเหรอ?
ที่จริงมี ลองนึกภาพแชสซีของรถที่เกือบจะเสร็จแล้วบนสายพาน ฉันสามารถติดตั้งได้ทั้งเครื่องยนต์ที่ปรับปรุงแล้วหรือเครื่องยนต์ที่มีประสิทธิภาพสูง ภายในเบาะหนังหรือเบาะผ้า ยังไม่ได้กำหนดการใช้งานเฉพาะของรถ ยิ่งไปกว่านั้น แชสซียังสามารถนำไปใช้งานเฉพาะต่างๆ ได้อีกมากมาย แต่ไม่มีใครต้องการรถในรูปแบบปัจจุบัน นี่เป็นคลาสนามธรรมแบบคลาสสิก : การสร้างอินสแตนซ์ของมันไม่สมเหตุสมผล ดังนั้นคุณจึงไม่สามารถสร้างมันได้ ชั้นเรียนเหมาะสมเพราะมีทายาทมากมายที่จะถูกสร้างขึ้นบนพื้นฐานของมัน
"นั่นง่ายพอ"
แต่อาจมีการเปรียบเทียบที่เป็นนามธรรมมากกว่านั้น เหมือนกับส่วนต่อประสานที่มีวิธีการนำไปใช้เล็กน้อย ตัวอย่างเช่น พิจารณาล่ามมืออาชีพ เรามี « ตัวแปลนามธรรม » โดยไม่ต้องระบุภาษาต้นทางและเป้าหมาย หรือพิจารณาผู้คุ้มกัน เราอาจรู้ว่าเขาเชี่ยวชาญศิลปะการต่อสู้และสามารถปกป้องลูกค้าของเขาได้ แต่ศิลปะการต่อสู้ใดและวิธีที่เขาจะปกป้องลูกค้าคือ "รายละเอียดการใช้งาน" ของผู้คุ้มกันเฉพาะแต่ละคน
ลองดูตัวอย่าง:
รหัสจาวา | คำอธิบาย |
---|---|
|
คลาส BodyGuard กำหนดวิธีจัดการกับการโจมตี: ยิงหรือใช้ศิลปะการต่อสู้
อย่างไรก็ตาม ไม่มีการระบุศิลปะการป้องกันตัวที่เฉพาะเจาะจง แม้ว่าเราจะแน่ใจว่าทักษะนั้นมีอยู่จริง เราสามารถสร้างบอดี้การ์ดได้หลายแบบ (โดยการสืบทอดคลาสนี้) พวกเขาทั้งหมดจะสามารถปกป้องลูกค้าและยิงผู้โจมตีได้ |
"คุณพูดถูก มันเหมือนกับส่วนต่อประสานที่มีวิธีการใช้งานไม่กี่อย่าง"
"ใช่ คลาสนามธรรมประเภทนี้มีอยู่ทั่วไปในคลาส Java SE มาตรฐาน"
GO TO FULL VERSION