“สวัสดี อามีโก้!”

"สวัสดี บิลาโบ!"

"คุณเป็นโปรแกรมเมอร์ที่เก่งอยู่แล้ว ดังนั้น วันนี้เราจะมาเรียนบทเรียนเกี่ยวกับ MVC"

"MVC ย่อมาจากModelViewControllerซึ่งเป็นรูปแบบการออกแบบสถาปัตยกรรมสำหรับแอพพลิเคชั่นขนาดใหญ่ โดยแอพพลิเคชั่นจะถูกแบ่งออกเป็นสามส่วน"

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

"ส่วนที่สองประกอบด้วยทุกอย่างที่เกี่ยวข้องกับการแสดงข้อมูลแก่ผู้ใช้ส่วนนี้เรียกว่ามุมมองประกอบด้วยโค้ดที่ควบคุมการแสดงหน้าต่าง หน้า ข้อความ ฯลฯ"

"ส่วนที่สามประกอบด้วยรหัสที่ประมวลผลการกระทำของผู้ใช้ การกระทำใด ๆ ของผู้ใช้ที่ตั้งใจจะเปลี่ยนโมเดลควรได้รับการจัดการที่นี่ ส่วนนี้เรียกว่าตัว   ควบคุม "

"วิธีการนี้ช่วยให้คุณสร้างสามสิ่งอย่างอิสระ:  ตรรกะของโปรแกรม (แบบจำลอง) กลไกสำหรับการแสดงข้อมูลของโปรแกรมแก่ผู้ใช้ (มุมมอง)และ ตัวจัดการสำหรับการป้อนข้อมูล/การดำเนินการ ของผู้ใช้ (ตัวควบคุม) "

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

"รหัสทั้งหมดที่ตัดสินใจว่าจะเปลี่ยนแปลงอะไรในโมเดลเพื่อตอบสนองการกระทำของผู้ใช้จะถูกรวบรวมไว้ใน Controller ตัวอย่างเช่น หากผู้ใช้ตัดสินใจปิดโปรแกรม คุณต้องบันทึกข้อมูลของโมเดลลงในไฟล์บนดิสก์ หรือหากผู้ใช้ป้อนข้อมูลใหม่ คุณต้องเพิ่มลงในแบบจำลอง จากนั้น แบบจำลองจะแจ้งมุมมองทั้งหมดเกี่ยวกับการเปลี่ยนแปลงข้อมูล ดังนั้น พวกเขาจึงแสดงเฉพาะสถานะปัจจุบันของข้อมูลเท่านั้น"

"พูดอีกครั้ง"

"จากมุมมองของนักพัฒนา Java เราสามารถพูดได้ว่าโมเดล มุมมอง และคอนโทรลเลอร์เป็นกลุ่มของคลาสสามกลุ่มโดยที่:"

" ก)  แต่ละส่วนมีจุดประสงค์ของตัวเอง"

" b)  ความสัมพันธ์ระหว่างชั้นเรียนของกลุ่มเดียวนั้นแข็งแกร่งมาก"

" c)  ความสัมพันธ์ระหว่างกลุ่มอ่อนแอมาก"

" ง)  วิธีที่ส่วนต่างๆ สื่อสารกันได้รับการควบคุมอย่างเข้มงวด"

"และนี่เป็นอีกวิธีหนึ่งในการนึกภาพ:

เอ็มวีซี - 1

"โมเดลเป็นส่วนที่เป็นอิสระที่สุดของระบบมันไม่ได้ขึ้นอยู่กับมุมมองหรือคอนโทรลเลอร์ โมเดลไม่สามารถใช้คลาสจากมุมมองหรือกลุ่มคอนโทรลเลอร์ (!)"

"ข้อจำกัดหลักของวิวคือไม่สามารถเปลี่ยนโมเดลได้ คลาสของวิวสามารถเข้าถึงโมเดลเพื่อดูข้อมูลหรือสมัครรับข้อมูลกิจกรรมได้ แต่คลาสของวิวไม่สามารถเปลี่ยนโมเดลได้"

"ข้อจำกัดหลักของคอนโทรลเลอร์คือไม่แสดงข้อมูลคอนโทรลเลอร์จะประมวลผลการกระทำของผู้ใช้และแก้ไขโมเดลตามนั้น"

"แต่ทำไมฉันถึงต้องการสิ่งนี้"

"การที่คุณไม่ได้ใช้สิ่งนี้ตอนนี้ ไม่ได้หมายความว่าคุณจะไม่ใช้มันในอนาคตอันใกล้ คุณมาเรียนที่นี่เพื่อหางานทำ และแม้ว่าความรู้นี้จะพิสูจน์ไม่ได้ว่ามีประโยชน์ในขณะที่ การเรียนจะมีประโยชน์ในขณะทำงานอย่างแน่นอน”

"โครงการจริงและบทสัมภาษณ์ยังคงรอคุณอยู่..."

“ตอนนี้เรากำลังคุยกันอยู่ แต่บางทีในหนึ่งเดือนคุณก็จะได้ทำงานแล้ว”

"คุณพูดถูกจริงๆ Bilaabo ฉันจะฟังคุณอย่างระมัดระวัง"

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

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

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

"แต่ถ้าคุณไม่คุ้นเคยกับแนวทางมาตรฐานของสถาปัตยกรรม แม้แต่สถาปัตยกรรมที่ดีที่สุดก็ไม่สามารถบอกอะไรคุณได้ คุณจะเป็นเหมือนชาวนาในยุคกลางที่กำลังมองหารถใหม่ รถมาตรฐาน"

"เข้าใจแล้ว ขอบคุณสำหรับบทเรียนที่น่าสนใจ บิลาโบ"

"สุดท้าย นี่คือลิงค์ที่ดีที่คุณควรลองดู:"

เชื่อมโยงไปยังเนื้อหาเพิ่มเติม