Tổng Quan Mô Hình MVC, So Sánh Mô Hình MVC Và Mô Hình 3 Lớp

Xin chào mừng bạn đã ghé thăm blog của Nguyễn Văn Tiến!.Chúc bạn sức khỏe, niềm vui và an lành!.
  • Home
  • Chuyện nghề
  • Kinh nghiệm lập trình
  • Công nghệ Java
  • Công nghệ PHP
  • Liên hệ

Thứ Năm, 18 tháng 8, 2016

Tổng quan mô hình MVC, So sánh mô hình MVC và mô hình 3 lớp

Model – View – Control

  1. Tổng quan:
Vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở Palo Alto. Sự ra đời của giao diện đồ họa (Graphical User Interface - GUI) và lập trình hướng đối tượng (Object Oriented Programming - OOP) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó. Không dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn nữa khi họ cho ra đời cái gọi là kiến trúc MVC (viết tắt của Model – View – Controller). Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết các vấn đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm.
  1. Các thành phần trong MVC:
Trong kiến trúc này, hệ thống được chia thành 3 tầng tương ứng đúng với tên gọi của nó (Model – View – Controller). Ở đó nhiệm vụ cụ thể của các tầng được phân chia như sau:
  1. Model (Tầng dữ liệu): là một đối tượng hoặc một tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình. Nó được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu và lưu dữ liệu vào các kho chứa dữ liệu. Tất cả các nghiệp vụ logic được thực thi ở Model. Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểm tra ở Model trước khi lưu vào cơ sở dữ liệu. Việc truy xuất, xác nhận, và lưu dữ liệu là một phần của Model.
alt Hình 1: Luồng xử lý của mô hình MVC
  1. View (Tầng giao diện): là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa …, để người dùng có thể thêm, xóa. sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống.. Thông thường, các thông tin cần hiển thị được lấy từ thành phần Models.
  2. Controller (Tầng điều khiển): là phần điều khiển của ứng dụng, điều hướng các nhiệm vụ (task) đến đúng phương thức (method) có chức năng xử lý nhiệm vụ đó. Nó chịu trách nhiệm xử lý các tác động về mặt giao diện, các thao tác đối với models, và cuối cùng là chọn một view thích hợp để hiển thị ra màn hình.
  1. Ưu điểm & nhược điểm:
  1. Ưu điểm:
Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhóm được đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trình đến tổ chức database. Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp..Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần của một hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tán náo loạn trong cả chương trình.Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năng vào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác.
  1. Nhược điểm:
Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng kềnh, tốn thời gian trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu của các tầng
  1. So sánh mô hình MVC với mô hình 3 lớp:
Hình 2: So sánh mô hình MVC với mô hình 3 lớp Hình 2: So sánh mô hình MVC với mô hình 3 lớp
  1. Điểm giống:
Tách rời programming core/business logic ra khỏi những phụ thuộc về tài nguyên và môi trường. Presentation Layer (PL) thể hiện giống như chức năng của View và Controller. Business Layer (BL) và Data Access Layer (DL) thể hiện giống như chức năng của Model. Như thế nhìn ở góc độ này, thì MVC tương đương với 3-layer (tất nhiên có chồng chéo như hình vẽ)
  1. Điểm khác:
Trong mô hình 3 lớp, quá trình đi theo chiều dọc, bắt đầu từ PL, sang BL, rồi tới DL, và từ DL, chạy ngược lại BL rồi quay ra lại PL. Hình 3: Mô hình 3 lớp Hình 3: Mô hình 3 lớp Còn trong mô hình MCD, dữ liệu được nhận bởi View, View sẽ chuyển cho Controller cập nhật vào Model, rồi sau đó dữ liệu trong Model sẽ được đưa lại cho View mà không thông qua Controller, do vậy luồng xử lý này có hình tam giác. alt Hình 4: Mô hình MCD

Không có nhận xét nào:

Đăng nhận xét

Bài đăng Mới hơn Bài đăng Cũ hơn Trang chủ Đăng ký: Đăng Nhận xét (Atom)

Bài mới

  • 20 công cụ kiểm tra code tốt nhất cho lập trình viên Một người lập trình viên luôn phải đối mặt với nhiều áp lực như deadline (hạn chót) và nhiều trở ngại trong quá trình phát triển phần mềm. ...

Bài đăng nổi bật

  • (không có tiêu đề) TÀI LIỆU TÌM HIỂU VỀ KAFKA VÀ VẤN ĐỀ LIÊN QUAN NỘI DUNG 1.       Kafka 1.1.           Bài toán đặt ra ...
  • Tổng quan mô hình MVC, So sánh mô hình MVC và mô hình 3 lớp Model – View – Control Tổng quan: Vào những năm 70 của thế kỷ 20, tại phòng thí nghiệm Xerox PARC ở Palo Alto. Sự ra đời của giao di...
  • Mảng 2 chiều và Cấp phát động cho con trỏ cấp 2 Mảng là tập hợp các phần tử cùng kiểu, nằm liên tiếp nhau trong bộ nhớ ảo. Bộ nhớ cấp phát cho một mảng luôn là một dài ô nhớ liên tục t...
  • Top 10 Web Frameworks trong java Bài viết này phân tích các top 10 web framework bằng ngôn ngữ Java trong năm 2015. Những phân tích này sẽ giúp các bạn định hướng lựa chọn đ...
  • [Spring Framework] - Giới thiệu về Spring Framework Nội dung bài viết: Ciới thiệu về Spring Framework. Thành phẩn của Spring Framework Lý do sử dụng Sơ đồ luồng đi của chương trình Down...

Tìm kiếm blog này ...

Danh mục

  • Công nghệ C. C++ (1)
  • Công nghệ Java (4)
  • Công nghệ lập trình Web (2)
  • Công nghệ PHP (5)
  • Kinh nghiệm Lập trình (8)
  • Kỹ thuật SQL (2)
  • Tản mạn (10)

Nhãn

  • Laravel (3)
  • Kiểm thử phần mền (2)
  • Công nghệ KafKa (1)
  • Spring Framework (1)
  • Ứng dụng (1)

Danh sách bài viết

  • ▼  2016 (22)
    • ▼  thg 8 2016 (8)
      • Tổng quan mô hình MVC, So sánh mô hình MVC và mô h...
      • Quản lý nguồn nhân lực dự án (Human Resource Manag...
      • Những tính năng mới trong Laravel 5.3
      • Tech lead tốt - Tech lead tồi
      • Khi nào nên dùng WordPress để làm shop thương mại ...
      • [PHP Laravel Training] Bài 2: Giới thiệu về projec...
      • [PHP Laravel Training] Bài 1: Giới thiệu về Larave...
      • Top 10 Web Frameworks trong java

Giới thiệu về tôi

Xem hồ sơ hoàn chỉnh của tôi

Liên hệ với mình nhé!. ^^

Tên Email * Thông báo *

Tổng số lượt xem trang

Từ khóa » Sự Khác Nhau Giữa Mô Hình 3 Lớp Và Mvc