8
ฉันควรหลีกเลี่ยงการใช้การสืบทอดของวัตถุเป็นไปได้ในการพัฒนาเกมหรือไม่?
ฉันชอบฟีเจอร์ OOP เมื่อพัฒนาเกมด้วย Unity ฉันมักจะสร้างคลาสพื้นฐาน (ส่วนใหญ่เป็นนามธรรม) และใช้การสืบทอดวัตถุเพื่อแบ่งปันฟังก์ชันการทำงานเดียวกันกับวัตถุอื่น ๆ อย่างไรก็ตามฉันเพิ่งได้ยินจากคนที่ใช้การสืบทอดต้องหลีกเลี่ยงและเราควรใช้อินเทอร์เฟซแทน ดังนั้นฉันจึงถามว่าทำไมและเขาบอกว่า "การสืบทอดวัตถุมีความสำคัญแน่นอน แต่ถ้ามีวัตถุเพิ่มเติมจำนวนมากความสัมพันธ์ระหว่างชั้นเรียนจะถูกเชื่อมโยงกันอย่างลึกซึ้ง ฉันใช้คลาสเบสที่เป็นนามธรรมบางอย่างเช่นWeaponBaseและสร้างคลาสอาวุธที่เฉพาะเจาะจงเช่นShotgunนั้นAssaultRifleเป็นMachinegunอย่างนั้น มีข้อดีมากมายและรูปแบบเดียวที่ฉันชอบคือความแตกต่าง ฉันสามารถปฏิบัติต่อวัตถุที่สร้างโดยคลาสย่อยราวกับว่าพวกเขาเป็นคลาสพื้นฐานเพื่อให้ตรรกะสามารถลดลงอย่างมากและทำให้สามารถนำมาใช้ซ้ำได้มากขึ้น หากฉันต้องการเข้าถึงฟิลด์หรือวิธีการของคลาสย่อยฉันจะส่งกลับไปยังคลาสย่อย ฉันไม่ต้องการที่จะกำหนดเขตข้อมูลเดียวกันที่นิยมใช้ในการเรียนแตกต่างกันเช่นAudioSource/ Rigidbody/ Animatorและจำนวนมากของเขตข้อมูลสมาชิกฉันที่กำหนดไว้เช่นfireRate, damage, range, spreadและอื่น ๆ ในบางกรณีวิธีการบางอย่างอาจถูกเขียนทับ ดังนั้นฉันใช้วิธีเสมือนในกรณีนั้นโดยทั่วไปฉันสามารถเรียกใช้วิธีนั้นโดยใช้วิธีการจากคลาสผู้ปกครอง แต่ถ้าตรรกะควรจะแตกต่างกันในเด็กฉันได้แทนที่พวกเขาด้วยตนเอง ดังนั้นสิ่งเหล่านี้ทั้งหมดควรถูกทอดทิ้งเป็นการปฏิบัติที่ไม่ดี? ฉันควรใช้อินเทอร์เฟซแทนหรือไม่
36
unity
architecture
oop