2
หากคลาส“ ResourceManager” ถือว่าไม่ดีตัวเลือกอื่นคืออะไร
ฉันได้ยินความคิดเห็นที่ขัดแย้งเช่น: "คลาส Dedicated Manager แทบไม่เคยเป็นเครื่องมือทางวิศวกรรมที่เหมาะสม" "คลาส Dedicated Manager เป็นวิธีที่ดีที่สุดในการอยู่รอดโครงการขนาดใหญ่ที่มีทรัพยากรนับพัน" ลองคลาส ResourceManager คลาสสิกที่มีฟังก์ชั่นต่อไปนี้: โหลดเนื้อหา (พื้นผิว, เสียง, โมเดล 3 มิติ ฯลฯ ) ตรวจสอบให้แน่ใจว่ามีการโหลดเนื้อหาเพียงครั้งเดียวโดยเก็บแคชไว้ การอ้างอิงนับสินทรัพย์เพื่อพิจารณาว่าสามารถยกเลิกการจัดสรรได้หรือไม่ ซ่อนที่สินทรัพย์จริงมาจาก (เช่นอาจเป็นหนึ่งไฟล์ต่อสินทรัพย์หรือสินทรัพย์ทั้งหมดในไฟล์แพ็คเกจหนึ่งหรือสินทรัพย์สามารถโหลดผ่านเครือข่ายได้) สามารถโหลดเนื้อหาโดยไม่ต้องเริ่มโปรแกรมใหม่ซึ่งมีประโยชน์อย่างยิ่งสำหรับศิลปินที่ทำงานในเกม Let 's ยังใช้อาร์กิวเมนต์ "singletons ที่ไม่ดี" ออกจากตารางโดยแกล้งทำเป็นวัตถุ ResourceManager เหล่านี้จะไม่ singletons และแทนจะถูกส่งผ่านไปรอบ ๆ ผ่านฉีดพึ่งพา จากนั้นมีอาร์กิวเมนต์ "ใช้เป็นโรงงาน" หรือ "เรียกว่าเป็นโรงงาน" ปัญหาของฉันเกี่ยวกับเรื่องนี้คือใช่มันเป็นโรงงาน แต่ก็เป็นแคชและตัวโหลดซ้ำ (เนื่องจากไม่มีคำที่ดีกว่า) การเรียกมันว่าโรงงานไม่ได้อธิบายอย่างถูกต้องและถ้าฉันทำให้มันเป็นโรงงานที่เหมาะสมแล้วการแคชและการโหลดใหม่จะถูกนำไปใช้ที่ไหน ฉันยอมรับว่าคลาส "ผู้จัดการ" มักเป็นอาการของสถาปัตยกรรมที่ไม่ดี แต่ในกรณีนี้จะปรับโครงสร้างและยังคงใช้งานได้ทั้งหมดหรือไม่ นี่เป็นสถานการณ์ที่ระดับ …