แนวทางสถาปัตยกรรมที่ดีที่สุดสำหรับการสร้างแอปพลิเคชั่นเครือข่าย iOS (ไคลเอนต์ REST)
ฉันเป็นนักพัฒนา iOS ที่มีประสบการณ์และคำถามนี้น่าสนใจสำหรับฉันจริงๆ ฉันเห็นแหล่งข้อมูลและวัสดุต่าง ๆ มากมายในหัวข้อนี้ แต่อย่างไรก็ตามฉันก็ยังสับสนอยู่ สถาปัตยกรรมที่ดีที่สุดสำหรับแอปพลิเคชั่นเครือข่าย iOS คืออะไร ฉันหมายถึงกรอบนามธรรมพื้นฐาน, รูปแบบ, ซึ่งจะเหมาะกับทุก ๆ แอปพลิเคชั่นเครือข่ายไม่ว่าจะเป็นแอพเล็ก ๆ , ซึ่งมีเพียงไม่กี่คำขอของเซิร์ฟเวอร์หรือไคลเอนต์ REST ที่ซับซ้อน Apple แนะนำให้ใช้MVCเป็นสถาปัตยกรรมพื้นฐานสำหรับแอปพลิเคชั่น iOS ทุกตัว แต่รูปแบบที่MVCทันสมัยกว่านั้นไม่ได้MVVMอธิบายว่าจะวางรหัสตรรกะเครือข่ายไว้ที่ใดและจะจัดระเบียบอย่างไรโดยทั่วไป ฉันจำเป็นต้องพัฒนาบางสิ่งเช่นMVCS( SสำหรับService) และในServiceเลเยอร์นี้ใส่APIคำขอทั้งหมดและตรรกะเครือข่ายอื่น ๆ ซึ่งในมุมมองอาจซับซ้อนจริงๆ? หลังจากทำวิจัยฉันพบวิธีพื้นฐานสองประการสำหรับเรื่องนี้ ที่นี่ขอแนะนำให้สร้างคลาสแยกต่างหากสำหรับทุกคำขอเครือข่ายไปยังบริการเว็บAPI(เช่นLoginRequestคลาสหรือPostCommentRequestคลาสเป็นต้น) ซึ่งสืบทอดมาจากคลาสฐานคำขอนามธรรมAbstractBaseRequestและนอกจากนี้เพื่อสร้างผู้จัดการเครือข่ายทั่วโลกบางส่วนซึ่งห่อหุ้มรหัสเครือข่ายทั่วไปและ การตั้งค่าอื่น ๆ (อาจเป็นการAFNetworkingปรับแต่งหรือRestKitการปรับแต่งถ้าเรามีการแมปวัตถุที่ซับซ้อนและการคงอยู่หรือแม้กระทั่งการดำเนินการสื่อสารเครือข่ายของตัวเองด้วย API มาตรฐาน) แต่วิธีนี้ดูเหมือนจะเป็นค่าใช้จ่ายสำหรับฉัน อีกวิธีหนึ่งคือการมีบางเดี่ยวAPIมอบหมายงานหรือระดับผู้จัดการในขณะที่วิธีการแรกแต่ไม่สามารถสร้างชั้นเรียนสำหรับทุกคำขอและแทนที่จะแค็ปซูลคำขอเป็นวิธีการเช่นประชาชนในระดับนี้ผู้จัดการเหมือนทุกfetchContacts, loginUserวิธีการอื่น ๆ ดังนั้นสิ่งที่ เป็นวิธีที่ดีที่สุดและถูกต้อง? มีวิธีการที่น่าสนใจอื่น ๆ ที่ฉันยังไม่รู้หรือไม่? และฉันควรสร้างเลเยอร์อื่นสำหรับสิ่งที่เกี่ยวกับเครือข่ายทั้งหมดนี้เช่นServiceหรือNetworkProviderเลเยอร์หรืออะไรก็ตามที่อยู่ด้านบนสุดของMVCสถาปัตยกรรมของฉันหรือเลเยอร์นี้ควรรวม (ฉีด) เข้ากับMVCเลเยอร์ที่มีอยู่เช่นModel? …