รูปแบบไม่ใช่แบบบล็อกดังนั้นฉันไม่ควรสร้างแอปในรูปแบบ MVC / MVP?


9

ฉันได้อ่านหน้านี้เกี่ยวกับรูปแบบการออกแบบและวิธีที่คุณควรปฏิบัติต่อพวกเขาเมื่อเขียนรหัสของคุณ จากความเข้าใจของฉันเป็นชื่อในรัฐลิงค์:

รูปแบบไม่ใช่การสร้างบล็อก

ถ้าฉันเข้าใจถูกต้องนี่หมายความว่าไม่ใช้รูปแบบการออกแบบจนกว่าจะเหมาะสมใช่ไหม? อย่าเริ่มต้นโดยบอกว่าคุณจะใช้รูปแบบกลยุทธ์รอจนกว่าคุณจะเขียนโค้ดและถ้าใช้รูปแบบกลยุทธ์นั้นเหมาะสมกับการออกแบบของคุณแล้วใช้มัน

ฉันปฏิบัติต่อรูปแบบMCV / MVPเช่นเดียวกับเมื่อฉันสร้างแอปพลิเคชัน GUI หรือไม่ จากลิงก์ที่เกี่ยวข้องมันบอกว่ามันเป็นรูปแบบสถาปัตยกรรม

สมมติว่าถ้าฉันสร้างแอปพลิเคชัน GUI และฉันไม่ได้ใช้รูปแบบ MCV / MVP แต่รหัสของฉันสะอาดอ่านได้และบำรุงรักษาได้หรือไม่มันยังคงเป็นกลิ่นรหัส / การออกแบบที่ไม่ดีที่ฉันไม่ได้ใช้รูปแบบ MCV / MVP ?

คำตอบ:


18

ถ้าฉันเข้าใจถูกต้องนี่หมายความว่าไม่ใช้รูปแบบการออกแบบจนกว่าจะเหมาะสมใช่ไหม?

ใช่.

อย่าเริ่มต้นโดยบอกว่าคุณจะใช้รูปแบบกลยุทธ์รอจนกว่าคุณจะเขียนโค้ดและถ้าใช้รูปแบบกลยุทธ์นั้นเหมาะสมกับการออกแบบของคุณแล้วใช้มัน

ใช่. ในทางเทคนิคคุณอาจตระหนักว่ารูปแบบกลยุทธ์นั้นเหมาะสมก่อนที่คุณจะเขียนโค้ดใด ๆ แต่นั่นอาจเป็นเพราะคุณกำลังคิดเกี่ยวกับปัญหาที่เกิดขึ้นจริงและออกแบบโซลูชันสำหรับปัญหานั้นซึ่งฉันถือว่าเป็นสิ่งที่คุณหมายถึง

ฉันปฏิบัติต่อรูปแบบ MCV / MVP ในลักษณะเดียวกันเมื่อฉันสร้างแอปพลิเคชัน GUI หรือไม่ จากลิงค์ที่เกี่ยวข้องมันบอกว่ามันเป็นรูปแบบสถาปัตยกรรม

ใช่ MVC / MVP / etc เป็นรูปแบบสถาปัตยกรรม ในแง่หนึ่งนั่นก็ไม่ได้สร้างความแตกต่างเพราะคุณยังควรใช้ MVC / MVP / etc เท่านั้นเมื่อมันสมเหตุสมผล เมื่อมันเหมาะสมกับปัญหาจริงที่คุณกำลังพยายามแก้ไข สิ่งที่ทำให้เกิดความแตกต่างก็คือเพราะมันใช้ในระดับที่สูงกว่าพูดมากรูปแบบกลยุทธ์โดยทั่วไปคุณจะคิดออกว่าเหมาะสมหรือไม่และตัดสินใจว่าคุณจะใช้มันเป็นส่วนหนึ่งของ งานออกแบบของคุณก่อนที่จะเขียนรหัสจำนวนมาก

โปรดทราบว่า "MVC / MVP" ไม่ใช่รูปแบบหนึ่งเดียว แต่เป็นรูปแบบที่เกี่ยวข้องกับครอบครัวขนาดใหญ่มากและไม่มีมติใด ๆ ในสิ่งที่นับว่าเป็น "MVC" หรือ "MVP" หรือ "MVVM" หรือส่วนที่เหลือของ ซุปตัวอักษรที่เกี่ยวข้อง

สมมติว่าถ้าฉันสร้างแอปพลิเคชัน GUI และฉันไม่ได้ใช้รูปแบบ MCV / MVP แต่รหัสของฉันสะอาดอ่านได้และบำรุงรักษาได้หรือไม่มันยังคงเป็นกลิ่นรหัส / การออกแบบที่ไม่ดีที่ฉันไม่ได้ใช้รูปแบบ MCV / MVP ?

ไม่เลยเนื่องจาก MVC / MVP / etc ไม่เหมาะสำหรับทุกแอปพลิเคชัน GUI ตัวอย่างเช่น GUIs บางตัวอาจเรียบง่ายจนเกินความจำเป็นหรือ GUIs บางตัวอาจไม่มีสถานะถาวรใด ๆ ที่จะใส่ใน "model" ฯลฯ มีเหตุผลที่ดีว่าทำไมรูปแบบตระกูลจึงได้รับความนิยมมาก ไม่ใช่วิธีเดียวในการเขียนซอฟต์แวร์ GUI ที่ดี

นอกจากนี้ "กลิ่นรหัส" มักจะหมายถึงบางสิ่งบางอย่างเกี่ยวกับตัวอย่างของรหัสที่อาจเป็นอาการของปัญหาที่ใหญ่กว่า หากรหัสทั้งหมดของคุณคือ "สะอาดอ่านได้และบำรุงรักษา" โดยไม่มีข้อยกเว้นใด ๆ แล้วเกือบตามคำนิยามคุณจะไม่มีกลิ่นรหัสใด ๆ (ยกเว้นอาจมีบางรหัส "บวกลบ" กลิ่นที่ไม่ได้ระบุปัญหาจริงใด ๆ )

ดังนั้นเพื่อตอบคำถามของคำถามของคุณ: "จะรักษารูปแบบ MVC / MVP ได้อย่างไร" ฉันจะบอกว่า: ไปอ่านเกี่ยวกับสาเหตุที่รูปแบบเหล่านั้นได้รับความนิยมมากเช่นปัญหาที่พวกเขากำลังพยายามแก้ไขดังนั้นในอนาคต คุณสามารถบอกได้ว่าปัญหาล่าสุดของคุณอาจได้รับการแก้ไขด้วยรูปแบบเหล่านั้นหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.