มีบางวิชาที่มาจากคำถามนี้:
- อินเทอร์เฟซเทียบกับคลาส
- คลาสใดที่เฉพาะเจาะจงจากหลายคลาสคอลเลกชันรายการอาร์เรย์
- คลาสทั่วไปเทียบกับคอลเลกชันย่อย ("generics")
คุณอาจต้องการเน้นว่าเป็นObject Oriented API
อินเทอร์เฟซเทียบกับคลาส
หากคุณไม่มีประสบการณ์เกี่ยวกับอินเทอร์เฟซมากนักขอแนะนำให้ติดเรียน ฉันเห็นหลายครั้งที่นักพัฒนาข้ามไปยังอินเทอร์เฟซแม้ว่ามันจะไม่ใช่เรื่องง่ายก็ตาม
และสิ้นสุดการออกแบบอินเทอร์เฟซที่ไม่ดีแทนที่จะเป็นการออกแบบคลาสที่ดีซึ่งในที่สุดก็สามารถโยกย้ายไปยังการออกแบบอินเทอร์เฟซที่ดีได้ ...
คุณจะเห็นอินเทอร์เฟซมากมายใน API แต่อย่ารีบเร่งถ้าคุณไม่ต้องการ
ในที่สุดคุณจะได้เรียนรู้วิธีใช้อินเทอร์เฟซกับโค้ดของคุณ
คลาสใดที่เฉพาะเจาะจงจากหลายคลาสคอลเลกชันรายการอาร์เรย์
มีหลายคลาสใน c # (dotnet) ที่สามารถแลกเปลี่ยนกันได้ ตามที่ได้กล่าวไปแล้วหากคุณต้องการบางสิ่งจากคลาสที่เฉพาะเจาะจงมากขึ้นเช่น "CanBeSortedClass" ให้กำหนดให้ชัดเจนใน API ของคุณ
ผู้ใช้ API ของคุณจำเป็นต้องทราบจริงๆหรือไม่ว่าชั้นเรียนของคุณสามารถจัดเรียงหรือใช้รูปแบบบางอย่างกับองค์ประกอบได้ จากนั้นใช้ "CanBeSortedClass" หรือ "ElementsCanBePaintedClass" หรือใช้ "GenericBrandClass"
มิฉะนั้นให้ใช้คลาสทั่วไป
คลาสคอลเลกชันทั่วไปเทียบกับคอลเลกชันย่อย ("generics")
คุณจะพบว่ามีคลาสที่มีองค์ประกอบอื่น ๆ และคุณสามารถระบุได้ว่าองค์ประกอบทั้งหมดควรเป็นประเภทเฉพาะ
คอลเลกชันทั่วไปชั้นเรียนเหล่านั้นที่คุณสามารถใช้คอลเลกชันเดียวกันสำหรับการใช้งานหลายรหัสโดยไม่ต้องสร้างคอลเลกชันใหม่สำหรับแต่ละประเภทรายการย่อยใหม่เช่นนี้การเก็บ
ผู้ใช้ API ของคุณต้องการประเภทที่เฉพาะเจาะจงมากเหมือนกันสำหรับองค์ประกอบทั้งหมดหรือไม่?
List<WashingtonApple>
ใช้สิ่งที่ต้องการ
ผู้ใช้ API ของคุณจำเป็นต้องมีประเภทที่เกี่ยวข้องหลายประเภทหรือไม่?
เปิดเผยList<Fruit>
สำหรับ API ของคุณและใช้List<Orange>
List<Banana>
, List<Strawberry>
ภายใน, ที่Orange
, Banana
และเป็นลูกหลานจากStrawberry
Fruit
ผู้ใช้ API ของคุณต้องการคอลเล็กชันประเภททั่วไปหรือไม่?
การใช้งานList
ที่มีรายการทั้งหมดobject
(s)
ไชโย