ความแตกต่างระหว่าง MVC และ MVC2 (พร้อมตาราง)

สารบัญ:

Anonim

หากมีปัญหาในการพัฒนาซอฟต์แวร์ รูปแบบการออกแบบจะเป็นวิธีแก้ปัญหาหลักในการแก้ไขปัญหานี้ พวกเขาเป็นเหมือนพิมพ์เขียวที่กำหนดไว้ล่วงหน้าซึ่งเราใช้แก้ปัญหาการออกแบบเชิงวัตถุในโครงการของคุณ ประการแรก จะค้นหาว่าปัญหาอยู่ที่ไหนแล้วจึงแก้ไข และอธิบายขั้นตอนและผลที่ตามมาด้วย MVC และ MVC2 เป็นสองแนวทางที่แตกต่างกันสำหรับรูปแบบสถาปัตยกรรม MVC (Model View Controller) ที่มีชื่อเสียง

MVC กับ MVC2

ความแตกต่างระหว่าง MVC และ MVC2 คือ MVC เป็นรูปแบบการออกแบบแอปพลิเคชันที่ประกอบด้วยสามส่วนที่เชื่อมต่อถึงกัน ในขณะที่ MVC2 เป็นรูปแบบที่ซับซ้อนกว่าซึ่งจะทำการแยกสถานะแอปพลิเคชันและลอจิกการควบคุมการนำเสนอออก MVC ประกอบด้วยโมเดล (ข้อมูล) มุมมอง (อินเทอร์เฟซผู้ใช้) และตัวควบคุม (ประมวลผลคำขอ) ความแตกต่างที่สำคัญระหว่าง MVC และ MVC2 คือความซับซ้อน ในเว็บแอปพลิเคชันของโลก Java โมเดลการออกแบบทั่วไปสองแบบ (รุ่น 1 และรุ่น 2) มีความเกี่ยวข้องอย่างใกล้ชิดกับ MVC และมักถูกเรียกว่า MVC1 (หรือเพียงแค่ MVC) และ MVC2 อย่างไม่ถูกต้อง

MVC เป็นแนวทางรุ่นแรกในเว็บแอปพลิเคชัน Java ที่ใช้หน้า JavaServer Page (JSP) สำหรับอินเทอร์เฟซผู้ใช้ร่วมกับ JavaBeans ซึ่งสามารถห่อหุ้มวัตถุหลายชิ้นในวัตถุเดียวเพื่อใช้สถาปัตยกรรม MVC คำขอของผู้ใช้จากเบราว์เซอร์จะถูกส่งไปยัง JSP ซึ่งเก็บตรรกะของตัวควบคุมและผูกโมเดลสำหรับข้อมูลซึ่งจะอัปเดตมุมมองและส่งการตอบกลับกลับไปยังผู้ใช้ที่แสดงในส่วนต่อประสานผู้ใช้ วิธีการนี้จะรวมฟังก์ชัน Controller และ View ไว้ภายในเพจ JSP และทำให้กระบวนทัศน์ MVC แตก

MVC2 ได้รับการแนะนำโดยองค์กร Sun Microsystem เป็นรูปแบบการออกแบบที่ไม่ทำลายกระบวนทัศน์ของ MVC ซึ่งแตกต่างจาก MVC ซึ่งตรรกะทางธุรกิจถูกแยกออกจากมุมมองและคำขอของลูกค้าทั้งหมดได้รับการจัดการในที่เดียวมากกว่าในไฟล์ JSP แต่ละไฟล์ใน MVC ในรูปแบบ MVC2 JSP จะถูกแทนที่ด้วยเซิร์ฟเล็ตสำหรับตรรกะของคอนโทรลเลอร์

ตารางเปรียบเทียบระหว่าง MVC และ MVC2

พารามิเตอร์ของการเปรียบเทียบ

MVC

MVC2

คำนิยาม

ใน MVC องค์ประกอบเดียวมีหน้าที่รับคำขอและส่งการตอบกลับ ใน MVC2 มีหลายองค์ประกอบสำหรับรับคำขอและส่งการตอบกลับ เช่น ตัวควบคุมและมุมมอง
การนำทาง

ใน MVC แต่ละ JSP มีตัวควบคุมและตรรกะการดูที่กำหนดการนำทางของหน้าการดูถัดไปที่ทำให้มีการแจกจ่ายซ้ำ ใน MVC2 เซิร์ฟเล็ตประกอบด้วยตรรกะการนำทางของหน้าการดูถัดไป ซึ่งทำให้เป็นการรวมศูนย์
ใช้เวลานาน

ใช้เวลาในการเขียนโค้ดมากขึ้นเพื่อพัฒนาแท็ก JSP ที่กำหนดเองเพื่อหลีกเลี่ยงแท็ก scriptlet ใช้เวลาในการพัฒนาน้อยลงเนื่องจากการควบคุมการนำทางทั้งหมดเป็นแบบรวมศูนย์
อิสรภาพ

ตรรกะทางธุรกิจและลอจิกการนำเสนอรวมอยู่ใน JSP ดังนั้นนักออกแบบเว็บไซต์และนักพัฒนาเว็บจึงไม่สามารถทำงานได้พร้อมกัน เนื่องจากมีการแยกระหว่างตรรกะและมุมมอง นักออกแบบและนักพัฒนาจึงสามารถทำงานร่วมกันได้
การนำกลับมาใช้ใหม่

การนำกลับมาใช้ใหม่และขยายยากขึ้นเนื่องจากการมีเพศสัมพันธ์ที่แน่นแฟ้นระหว่างตรรกะและมุมมอง ใช้ซ้ำและขยายได้ง่ายซึ่งเหมาะสำหรับการใช้งานที่ใหญ่ขึ้น

MVC.คืออะไร?

MVC เป็นรูปแบบการออกแบบสถาปัตยกรรมสำหรับปัญหาที่เกิดซ้ำของการออกแบบซอฟต์แวร์ ซึ่งให้แนวทางคำอธิบายระดับสูงในการแก้ปัญหา สถาปัตยกรรม MVC มีสามโมดูล: โมเดล มุมมอง และตัวควบคุม

แบบอย่าง: แสดงถึงสถานะของข้อมูล (ซึ่งแสดงต่อผู้ใช้ในหน้ามุมมอง)

ดู: โมดูลมุมมองเป็นส่วนต่อประสานกับผู้ใช้ที่ผู้ใช้ดำเนินการและสื่อสารภายในไปยังเซิร์ฟเวอร์

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

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

JavaBeans ซึ่งเรียกอีกอย่างว่า Beans มีหน้าที่ในการห่อหุ้มวัตถุหลายชิ้นเป็นวัตถุเดียวในขณะที่ JSP มีทั้งตรรกะ Controller และ View MVC ยังถูกเรียกว่าเพจเป็นศูนย์กลาง เนื่องจากมีการเข้าถึงโดยตรงไปยังหน้าการดูอื่น ซึ่งเหมาะสำหรับแอปพลิเคชันขนาดเล็ก

MVC2. คืออะไร?

วิศวกรซอฟต์แวร์ส่วนใหญ่คิดว่า MVC2 เป็นเวอร์ชันปรับปรุงของ MVC เช่นเวอร์ชัน 2.0; มันไม่ใช่ แบบจำลองที่ 1 และแบบจำลองที่ 2 ได้รับการพัฒนาควบคู่กันไปและเป็นสองทางเลือกในการดำเนินการต่างๆ

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

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

ต่างจาก MVC, JSP ใน MVC2 ไม่มีทั้งตัวควบคุมและตรรกะการดู ความรับผิดชอบ แต่เพียงผู้เดียวคือการดึงสถานะที่อัปเดตของโมเดลจากเซิร์ฟเล็ตนั้นเพื่อแสดงบนหน้าดู

ความแตกต่างหลักระหว่าง MVC และ MVC2

เรามักสับสนระหว่าง MVC2 ว่าเป็น MVC เวอร์ชัน 2.0 อย่างไรก็ตาม ไม่ใช่ แต่เป็นโมเดลการออกแบบ Java ที่สถาปัตยกรรม MVC2 ซับซ้อนกว่าและเหมาะที่สุดสำหรับแอปพลิเคชันที่ใหญ่กว่า

ปัจจัยแยกความแตกต่างระหว่างความสัมพันธ์ MVC และ MVC2 สามารถสรุปได้ด้วยเหตุผลดังต่อไปนี้:

  1. ใน MVC องค์ประกอบเดียวมีหน้าที่รับคำขอและส่งการตอบกลับ แต่ใน MVC2 มีหลายองค์ประกอบสำหรับรับคำขอและส่งการตอบกลับ เช่น ตัวควบคุมและมุมมอง
  2. MVC1 จับคู่ตรรกะการนำเสนอกับตรรกะทางธุรกิจอย่างแน่นหนา แต่ MVC 2 แยกหรือแยกตรรกะการนำเสนอออกจากตรรกะทางธุรกิจ
  3. ใน MVC ตรรกะทางธุรกิจและลอจิกการนำเสนอจะรวมกันใน JSP ดังนั้นนักออกแบบเว็บไซต์และนักพัฒนาเว็บจึงไม่สามารถทำงานได้พร้อมกัน แต่ใน MVC2 มีการแยกระหว่างตรรกะและมุมมอง นั่นคือเหตุผลที่นักออกแบบและนักพัฒนาสามารถทำงานร่วมกันได้
  4. ใน MVC 1 ตัวควบคุมและรุ่น ทั้งคู่คือ JSP หรือเราอาจพูดได้ว่าเขียนใน JSP เดียวกัน แต่ใน MVC2 คอนโทรลเลอร์คือเซิร์ฟเล็ต และโมเดลคือคลาส Java
  5. MVC ไม่รองรับการนำส่วนประกอบแอปพลิเคชันกลับมาใช้ใหม่ได้ ในขณะที่ MVC2 รองรับการนำส่วนประกอบกลับมาใช้ใหม่ได้ ซึ่งดีสำหรับแอปพลิเคชันขนาดใหญ่และซับซ้อนมากขึ้น

บทสรุป

ตามที่เราเห็นความแตกต่างหนาระหว่าง MVC และ MVC2 แม้ว่าจะมีชื่อคล้ายกัน แต่ทั้งคู่ถูกใช้เป็นวิธีแก้ปัญหาสำหรับปัญหาการออกแบบระบบที่เกิดซ้ำ

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

MVC2 แยกหน้าการดูออกจากตัวควบคุม ซึ่งแตกต่างจาก MVC ที่ทำให้ทั้งตรรกะทางธุรกิจและมุมมองรวมอยู่ใน JSP ดังนั้น MVC2 จึงสามารถบำรุงรักษาได้ง่ายกว่าสำหรับผู้ใช้หลายราย เนื่องจากความสามารถในการนำกลับมาใช้ใหม่ได้และคุณลักษณะขยาย และสามารถรองรับระบบที่ซับซ้อนมากขึ้นในแบบเรียลไทม์ เช่น Facebook, Instagram

อ้างอิง

  1. https://www.scientific.net/AMM.198-199.537
  2. https://ieeexplore.ieee.org/abstract/document/777091/
  3. https://academic.oup.com/jpp/article-abstract/64/3/397/6135294

ความแตกต่างระหว่าง MVC และ MVC2 (พร้อมตาราง)