Tiểu luận Mô hình MVC trong Java

28 3K 28
Tiểu luận  Mô hình MVC trong Java

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1.Tổng quan về Mô hình MVC. 1.1. Xuất xứ 1.2. Kiến trúc 1.3. ưu ,nhược điểm2.Cách xây dựng hệ thống theo mô hình MVC với 3 cấu trúc( Có ví dụ minh họa): 2.1.Mô hình MVC với thực thể thuần 2.1.Mô hình MVC với thực thể bean 2.3.Mô hình MVC cải tiến

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Khoa Công nghệ thông tin ĐỀ TÀI TÌM HIỂU MÔ HÌNH MVC TRONG JAVA Môn: Lập trình hướng đối tượng Giảng viên: Nguyễn Mạnh Sơn Nhóm 10 Lục Thị Linh Nhâm _D12CN1 Nguyễn Thị Bình An _D12CN1 Phạm Thị Diễm_D12CN4 Hà Nội- 2014 Mục lục Trang I. Tổng quan về MVC 1. Xuất xứ 1 2. Kiến trúc MVC 1 2.1. Khái niệm 2 2.2. Mô hình thực tế 3 2.3. Các mối quan hệ 5 2.3.1. Mối quan hệ giữa View và Controller 5 2.3.2. Mối quan hệ giữa View và Model 5 2.3.3. Quan hệ giữa Model và Controller 6 3. Ưu điểm và nhược điểm 6 3.1.Ưu điểm của MVC 6 3.2.Hạn chế của MVC 8 II. Thiết kế hệ thống theo MVC 1. Mô hình MVC dùng thực thể thuần (cổ điển) 8 1.1.Xây dựng Model 9 1.2.Xây dựng View 11 1.3.Xây dựng Control 12 1.4.Hàm main 13 2.Mô hình MVC với thực thể bean 13 2.1.Xây dựng Model 14 2.2.Xây dựng View 16 2.3.Hàm main 18 3. Mô hình MVC cải tiến 18 3.1.Xây dựng Model 19 3.2.Xây dựng View 20 3.3.Xây dựng Control 23 3.4.Hàm main 25 Tìm hiểu mô hình MVC trong java I. Tổng quan về MVC 1. Xuất xứ Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) 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 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 khi cho ra đời kiến trúc MVC (viết tắt của Model – View – Controller). MVC được phát minh tại tại phòng thí nghiệm Xerox Parc ở Palo Altovào những năm 70của thế kỷ 20, bởi TrygveReenskaug và lần đầu tiên xuất hiện công khai là trong trình biên dịch Smalltalk-80. Sau đó hầu như không có thông tin nào về MVCtrong một thời gian dài, ngay cả trong tài liệu Smalltalk-80. Tài liệu quan trọng đầu tiên về MVC được công bố trên MVC là “ACookbookforUsing the Model-View-Controller User InterfaceParadigm in Smalltalk-80”,của Glenn Krasner và Stephen Pope, xuất bản vào tháng 8 – tháng 9 năm 1988. 2. Kiến trúc MVC Hình1.Kiến trúc MVC 4 Tìm hiểu mô hình MVC trong java 2.1. Khái niệm Ý niệm chính của mô hình MVC là tách biệt phần ánh xạ, lưu trữ và xử lý dữ liệu (Model) hoàn toàn với thành phần trình bày giao diện kết quả cho người dùng hay phần giao diện giúp đón nhập nhập xuất cho người dùng (View). Ngoài ra, việc tách biệt rời rạc giữa Model và View theo phân tích của chúng ta đang thể hiện tính uy việt. Tuy nhiên, một ứng dụng có rất nhiều Model và nhiều View, do vậy, mô hình cần có một thành phần lựa chọn và kết nối các thành phần này lại với nhau theo cách hiệu quả nhất. Controller là một trong những đối tượng đưa ra để đón nhận yêu cầu nhập xuất từ người dùng, xác định model tương ứng với view nhập để đưa model xử lý, kết quả xử lý của model sẽ được chuyển đến controller để controller xác định view kết xuất để đổ kết quả xử lý và hiển thị cho người dùng. Mô hình Model-View-Control chia các components của ứng dụng thành 3 loại khác nhau đó là Model (mẫu), View (hiển thị), Control (điều khiển). Các components của mô hình MVC đảm nhiệm một trách nhiệm nhất định và mỗi components đều độc lập với components khác.Việc thay đổi một components sẽ không ảnh hưởng hoặc ảnh hưởng rất ít đến các components khác. Nhiệm vụ của các components này là:  Model(mẫu): Model đảm nhận nhiệm vụ cung cấp dữ liệu từ cơ sở dữ liệu và lưu trữ các thông tin đó ở nơi chứa dữ liệu. Tất cả các Business Logic đều được thực thi ở Model. Dữ liệu được nhập vào bởi người sử dụng qua View sẽ được kiểm tra ở Model trước khi được lưu vào cơ sở dữ liệu. Truy xuất dữ liệu,sự hợp lệ của dữ liệu và data saving logic là các thành phần của Model. o Là các thành phần hỗ trợ ánh xạ dữ liệu vật lý lên bộ nhớ, lưu trữ dữ liệu tạm thời trên bộ nhớ, hỗ trợ các cách thức xử lý dữ liệu, hỗ trợ khả năng giao tiếp và trao đổi dữ liệu giữa các đối tượng khác trong bộ nhớ và cơ sở dữ liệu. o Cụ thể là một đối tượng Object trong khái niệm của lập trình hướng đối tượng OOP và mang đầy đủ khái niệm và tính chất của một Object. o Trong ứng dụng Web của Java, Model sẽ là JavaBean hay Enterprise JavaBean hay Web Service.  View (hiển thị): View trình bày việc hiển thị ứng dụng và nhận trách nhiệm lấy dữ liệu từ người sử dụng,gửi các yêu cầu tới Controller và hiển thị kết quả đến người sử dụng. HTML, JSPs, các thư viện và các file nguồn là các phần của view components. o Là thành phần hỗ trợ trình bày dữ liệu hay kết quả ra màn hình, hỗ trợ nhập thông tin từ phía người dùng. 5 Tìm hiểu mô hình MVC trong java o Các thành phần này có khả năng truy cập Model, truy xuất Model thông qua những hành vi mà Model cho phép nhưng View không thể thay đổi các thành phần trong Model. o Trong mô hình ứng dụng Web thì html, servlet, jsp … là những thành phần đại diện cho View.  Controller (điều khiển): Controller là trung gian giữa Model và View. Controller có trách nhiệm nhận các yêu cầu từ Client. Khi mà yêu cầu được nhận từ Client,Controller sẽ thực thi business logic thích hợp từ Model và sau đó xuất dữ liệu ra user sử dụng View components. ActionServlet, Action và ActionForm và struct-config.xml là các thành phần của Controller. o Là các thành phần hỗ trợ kết nối người dùng server, đón nhập yêu cầu người dùng, thực hiện chuyển xử lý, lựa chọn và cập nhật model và view tương ứng để trình bày về phía người dùng. o Hỗ trợ kết nối giữa người model và view, giúp model xác định được view trình bày. o Trong mô hình ứng dụng Web thì Servlet đóng vai trò của Controller. 2.2. Mô hình thực tế Có thể lấy ví dụ như khi bạn xem phim truyền hình thì Model trong trường hợp này là đầu đĩa, màn hình tivi đóng vai trò là View còn Controller chính là remote để bạn điều khiển chuyển kênh, tăng giảm âm lượng… Hay như khi các bạn thao tác trên điện thoại: View là màn hình điện thoại, Controller là các nút bấm và Model là các chíp xử lý bên trong. Để hiểu rõ hơn về mô hình MVC này, xin đưa ra một mô hình thực tế tiếp cận khái niệm của mô hình này như sau: Mô hình tiếp cận về việc công việc hàng ngày chúng ta thường làm để giải trí, đó là xem truyền hình. • Một người A muốn xem các phim chọn lọc được lựa chọn từ các đĩa CD/DVD trên truyền hình của nhà A • Để đọc được các đĩa CD/DVD thì phải dùng đầu máy đọc đĩa trong nhà A • Đầu máy này đặc biệt không có nút điều khiển trực tiếp, đầu máy này nhận hàng loạt các đĩa – tối đa là 5 cái, do vậy muốn kích hoạt và chọn đĩa xem A bắt buộc phải sử dụng remote control – điều khiển từ xa 6 Tìm hiểu mô hình MVC trong java • Như vậy, chúng ta sẽ nhận thấy cách thức A xem phim như sau o A sẽ sử dụng remote control điều khiển đầu máy để chọn đĩa mà A thích xem nhất để mở nó ra o Đĩa được chọn từ đọc máy được đọc và trình chiếu trên màn hình truyền hình o Khi dữ liệu đã hiển thị trên màn hình tivi thì A sẽ thấy được nội dung o Và cách thức này sẽ được lập đi lập lại khi A chọn một phim khác, đó là vẫn dùng đồ điều khiển để chọn đĩa và đầu đĩa đưa dữ liệu lên truyền hình và A thấy. … Mô hình tiếp cận được mô tả như hình vẽ sau Hình 2.Mô hình MVC khi A xem phim. • Qua hình ảnh mô tả trên, chúng ta nhận thấy rằng: o Đầu máy là nơi xử lý dữ liệu, chọn lựa cách thức xử lý, nội dung cần thiết, nghĩa là đầu máy đóng vai trò là Model. 7 Tìm hiểu mô hình MVC trong java o Tivi chỉ làm nhiệm vụ duy nhất để trình bày kết quả mà đầu máy – Model đã thực hiện, được lựa chọn. Tivi không thể lựa chọn và không có cách chọn lựa là trình bày các thành phần truyền đến đã được xử lý. Tivi đóng vai trò là View. o Thành phần hỗ trợ đưa dữ liệu từ Model đến View đó là đồ điều khiển remote, ngoài ra remote cũng là nơi kết nối người dùng với đầu máy với tivi. Chức năng của điều khiển là chọn đúng model để đưa ra view. Remote đóng vai trò là Controller. • Dựa vào cách tiếp cận trên chúng ta thấy được sự tối ưu của MVC đó là: o Khi chúng ta thay đổi kênh đang xem thành kênh khác thì việc thay đổi không ảnh hưởng gì đến toàn hệ thống. o Tương tự như thế nếu đầu máy hư thì thay đổi máy khác vẫn không ảnh hưởng gì lớn. o Như vậy, việc tách biệt giúp chúng ta có nhiều lợi ích trong việc phân chia công việc và các xử lý công việc. 2.3 . Các mối quan hệ 2.3.1 Mối quan hệ giữa View và Controller  Trong MVC truyền thống,các view và controller được kết hợp chặt chẽ với nhau. Mỗi view được kết hợp với một controller duy nhất. Controller được xem như một Strategy (sự quản lý) mà view sử dụng cho đầu vào. View cũng chịu trách nhiệm tạo ra các khung nhìn và controller mới.  Có sự logic cho rằng các khung nhìn và các controller có quan hệ chặt chẽ với nhau.Hầu hết các nền GUI MVC,view và controller được trộn trong một đối tượng hay còn được gọi là Document view: View và controller được kết hợp thành view, Model trở thành một tài liệu.  Passive Model luân phiên chịu trách nhiệm nhiều hơn so với controller,vì nó phải thông báo cho các view khi có sự cập nhật  MVC luân phiên hiện đại tỏ ra hữu ích hơn nhiều so với MVC truyền thống về việc chịu trách nhiệm của View đến Controller trong thiết kế web. Controller chịu trách nhiệm tạo ra và lựa chọn các View và View hướng dẫn đến việc chịu trách nhiệm ít hơn đối với các Controller của nó 8 Tìm hiểu mô hình MVC trong java 2.3.2 Mối quan hệ giữa View và Model Giữa Model và View trên khái niệm, đối tượng nào phụ thuộc đối tượng nào? o View lệ thuộc vào Model bởi vì khi các tổ chức interface của Model thay đổi nghĩa là View phải thay đổi theo o Chúng ta tránh nhầm lẫn về khái niệm ở trên là tách biệt giữa View và Model là có lợi nhưng tại sao ở đây View lại lệ thuộc Model? Khái niệm của chúng ta ở đây đó là tách biệt dữ liệu và thành phần xử lý bên trong, hệ thống sẽ trở nên uyển chuyển khi chúng ta thành đổi thành phần cài đặt trong Model, không phải thay đổi interface Model. Và khái niệm trên đã nêu rõ giữa dữ liệu vật lý và dữ liệu được chứa trong Model  View phụ thuộc vào Model. Các sự thay đổi đối với giao diện Model đòi hỏi các sự thay đổi song song trong View.  Không có sự tách biệt rõ ràng giữa Model và View. Model chuyển dữ liệu ra và dữ liệu được chuyển vào View để tác nghiệp một cách dễ dàng 2.3.3 Quan hệ giữa Model và Controller • Dựa trên bản chất của MVC, khái niệm và cách tiếp cận chúng ta nhận thấy mối quan hệ giữa controller và model là như thế nào? Giữa Controller và Model, đối tượng nào phụ thuộc đối tượng nào? o Ý tưởng đó là khi chúng ta thay đổi đầu máy đọc, remote có thay đổi theo hay không? Hay chúng ta vẫn dùng remote cũ (không tính khái niệm điều khiển đa năng)? remote được thiết kế dựa trên đầu máy hay đầu máy được thiết kế dựa trên đồ điều khiển? o Câu trả lời chúng ta quá rõ ràng, đó là controller phụ thuộc vào model bởi vì controller được thiết kế đề kết nối với model, điều khiển, truy xuất model. Do vậy, model có sự thay đổi là controller phải thay đổi theo để có thể truy xuất và điều khiển model cho phù hợp Controller phụ thuộc vào Model. Các sự thay đổi đối với giao diện Model có thể yêu cầu sự thay đổi song song đối với Controller. 3. Ưu điểm và nhược điểm 9 Tìm hiểu mô hình MVC trong java 3.1 Ưu điểm của MVC o Tính linh hoạt và uyển chuyển cao: Cho phép người lập trình có thể tách biệt công việc trong quá trình xây dựng chức năng cho ứng dụng và quá trình xây dựng giao diện cho người dùng, thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế giúp phát triển ứng dụng nhanh hơn. Cho phép việc thay đổi thành phần của dữ liệu (Model) sẽ không ảnh hưởng nhiều đến giao diện của người dùng Vì mô hình đưa ra Model để không cho người dùng thao tác trực tiếp vào dữ liệu vật lý (Cơ sở dữ liệu hay là tập tin) mà phải thông qua Model, do vậy cho dù dữ liệu vật lý thay đổi cấu trúc nhưng cấu trúc Model cho việc truy cập, xử lý, lưu trữ dữ liệu sẽ không bị ảnh hưởng. Nhìn theo khái niệm các thành phần giao tiếp trên Model là tên hàm – tham số truyền (interface) ít khi thay đổi, nội dung thay đổi chính là cách thức cài đặt bên trong hàm. Nhưng nội dung đó người sử dụng chức năng trên giao diện không quan tâm vì đa số họ chỉ quan tâm interface là gì, giá trị nhập và kết xuất ra sao. o Tính tin cậy (reliability): việc chia từng phần riêng biệt giúp chúng ta sửa đổi từng thành phần riêng biệt, không ảnh hưởng, có thể thay thế thành từng phần tương đương, có thể chia công việc theo nhóm, biên dịch độc lập, tăng cường khả năng tích hợp với khả năng đúng đắn cao o Tính tương thích cao (compatibility): có khả năng sử dụng các loại công nghệ khác nhau không lệ thuộc vì chúng ta đã được tách biệt và khái niệm cho từng loại thành phần riêng biệt o Tính tái sử dụng (reusable): chúng ta có thể sử dụng các thành phần chia cắt lại trong các ứng dụng khác hay sử dụng lại nhiều lần trong cùng một ứng dụng, tăng tính hiệu quả trong lập trình o Khả năng triền khai nhanh chóng và bảo trì nhanh chóng (quick deploy and easy maintenance): vì các thành phần độc lập với nhau o Mang đến nhiều thuận lợi cho người sử dụng: giúp dễ dàngtrong quá trình làm việc với ứng dụng và bảo trì, nâng cấpứng dụng.  Các View và các Controller khác nhau có thể được thay đổi để đưa ra sự lựa chọn các giao diện người sử dụng đối với cùng 1 Model. Chẳng hạn như, cùng 1 dữ liệu Model có thể được hiển thị bởi biểu đồ bar, hay biểu đồ pie, hoặc spreadsheet.  Các thành phần hợp thành giao diện người sử dụng 10 [...]... hệ thống theo MVC Có thể áp dụng một số dạng mô hình MVC phổ biến:    Mô hình MVC dùng thực thể thuần (cổ điển) Mô hình MVC dùng bean Mô hình MVC cải tiến (hiện đại) 1 Mô hình MVC dùng thực thể thuần (cổ điển) - Đặc trưng: Lớp thực thể chỉ chứa các thuộc tính và các phương thức get/set cho mỗi thuộc tính (còn gọi là các lớp thực thể thuần)  Các thao tác liên quan đến dữ liệu đều đặt trong lớp điều... một lớp nội tại (inner class) dùng để nhận sự kiện do lớp biên truyền xuống để xử lý Tìm hiểu mô hình MVC trong java Hình5 Sơ đồ 3.1.Xây dựng Model public class Caculator { private long a, b; public Caculator() { } public Caculator(long a, long b) { this.a = a; this.b = b; } 22 Tìm hiểu mô hình MVC trong java public long getA() { return a; } public void setA(long a) { this.a = a; } public long getB()... view=new View(); view.setVisible(true); } } 2 Mô hình MVC với thực thể bean -Đặc trưng:  16 Lớp thực thể chứa các thuộc tính và các phương thức get/set cho mỗi thuộc tính, và các thao tác liên quan đến dữ liệu mà liên quan đến lớp thực thể nào thì đều đặt trong lớp điều khiển đó Các lớp thực thể kiểu này được gọi là lớp bean Tìm hiểu mô hình MVC trong java  Trong nhiều trường hợp, không còn cần đến... }catch(Exception e){ JOptionPane.showMessageDialog(null, "Nhap loi!"); } 20 Tìm hiểu mô hình MVC trong java } } 2.3.Hàm Main public class MAIN { public static void main(String[] args) { View view=new View(); view.setVisible(true); } } 3 Mô hình MVC cải tiến - Đặc trưng:   Lớp thực thể thuần Các thao tác liên quan đến CSDL đều đặt trong lớp điều khiển Các lớp điều khiển giành quyền điều khiển toàn bộ các lớp... hiện các phép tính với 2 số nguyên Chức năng tính toán của Caculator theo MVC với thực thể bean:  Khi nút tổng, hiệu, tích hoặc thương trên form của lớp View bị click thì lớp View sẽ xử lý sự kiện ,trong đó gọi đến thao tác tính toán trong lớp Caculator, sau đó View sẽ hiện thị kết quả Hình 4 Sơ đồ 17 Tìm hiểu mô hình MVC trong java 2.1 Xây dựng Model public class Caculator { private long a, b; private... nguyên Chức năng tính toán của Caculator theo MVC cải tiến:  Khi nút tổng, hiệu, tích hoặc thương trên form của lớp View bị click thì lớp View bắt sự kiện ,cập nhật dữ liệu ở Model rồi truyền dữ liệu này cho Control   12 Trên lớp Control thực hiện thao tác tính toán View hiển thị kết quả tính toán đã thực hiện ở Control Tìm hiểu mô hình MVC trong java Hình 3 Sơ đồ dùng thực thể thuần 1.1.Xây dựng...Tìm hiểu mô hình MVC trong java  Bởi vì MVC đòi hỏi giao diện người sử dụng ứng dụng được cấu trúc thành các đối tượng kế thừa nhau và định nghĩa các quan hệ chuẩn giữa các đối tượng này nên chúng sẽ có phiên bản chung  Chúng... thể được phản ứng một cách đồng thời trạng thái hiện tại của Model  Dễ dàng hơn trong việc thay đổi giao diện người sử dụng  Giúp dễ dàng kiểm thử chức năng chính của ứng dụng vì nó được đóng gói vào Model 3.2 Hạn chế của MVC  Gia tăng độ phức tạp: Đối với những dự án nhỏ, áp dụng mô hình MVC 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 giữa các thành phần... của view và controller với model  Sự thay đổi đối với giao diện model đòi hỏi sự thay đổi song song trong view và có thể đòi hỏi sự thay đổi thêm đối với controller Sự thay đổi code nào đó có thể trở nên khó khăn hơn  Sự tách biệt rõ ràng là rất khó, đôi khi là không thể 11 Tìm hiểu mô hình MVC trong java  Tiềm ẩn sự cập nhật dư thừa: Cơ chế truyền sự thay đổi có thể không hiệu quả khi Model thay... con đặc biệt Các thành phần này được biết đến như là các View có khả năng cắm vào trong smalltalk MVC  Nhiều View đồng thời của một Model Nhiều View khác nhau có thể hoạt động tại cùng một thời điểm Mỗi View mô tả đồng thời và độc lập thông tin giống nhau từ 1 Model Điều này áp dụng nhiều đối với GUI MVC hơn là web MVC  Các khung nhìn được đồng bộ hóa  Cơ chế truyền sự thay đổi đảm bảo rằng tất

Ngày đăng: 30/10/2014, 08:31

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan