1. Trang chủ
  2. » Luận Văn - Báo Cáo

(LUẬN VĂN THẠC SĨ) Phát triển mẫu thiết kế phần mềm và ứng dụng

113 2 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 113
Dung lượng 1,64 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGHIÊM VĂN TRIỆU PHÁT TRIỂN MẪU THIẾT KẾ PHẦN MỀM VÀ ỨNG DỤNG LUẬN VĂN THẠC SĨ HÀ NỘI - 2010 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGHIÊM VĂN TRIỆU PHÁT TRIỂN MẪU THIẾT KẾ PHẦN MỀM VÀ ỨNG DỤNG Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐOÀN VĂN BAN HÀ NỘI - 2010 TIEU LUAN MOI download : skknchat@gmail.com MỤC LỤC MỞ ĐẦU CHƢƠNG TỔNG QUAN VỀ MẪU THIẾT KẾ PHẦN MỀM 1.1 Vấn đề thiết kế phần mềm hƣớng đối tƣợng 1.2 Khái niệm Mẫu thiết kế 1.3 Nội dung mẫu thiết kế GOF [6] 1.3.1 Nhóm mẫu tạo lập 1.3.2 Nhóm Mẫu cấu trúc 12 1.3.3 Nhóm mẫu hành vi 25 1.4 Tổng kết chƣơng 47 CHƢƠNG CÁC NGUYÊN LÝ THIẾT KẾ MẪU PHẦN MỀM 49 2.1 Các nguyên lý thiết kế hƣớng đối tƣợng [10] 49 2.1.1 Nguyên lý đóng mở 49 2.1.2 Nguyên lý Nghịch đảo phụ thuộc 52 2.1.3 Nguyên lý Thay Liskov 54 2.1.4 Nguyên lý Phân tách giao diện 55 2.2 Các nguyên lý xây dựng mẫu thiết kế phần mềm 58 2.2.1 Tình phát sinh mẫu thiết kế từ nguyên lý thiết kế thực tiễn 58 2.2.2 Mẫu thiết kế giải pháp cụ thể 58 2.2.3 Mục tiêu thiết kế mẫu hƣớng tới ngƣời dùng 59 2.2.4 Các thuật ngữ mẫu thiết kế điển hình gợi vấn đề 60 2.2.5 Lựa chọn tình áp dụng điển hình 60 2.3 Tổng kết chƣơng 61 CHƢƠNG PHƢƠNG PHÁP THIẾT KẾ MẪU PHẦN MỀM 62 3.1 Các thành phần mẫu thiết kế 62 3.1.1 Tên khuôn mẫu 62 3.1.2 Vấn đề 62 3.1.3 Giải pháp 62 3.1.4 Hệ 63 3.2 Các định dạng mẫu thiết kế 63 3.2.1 Định dạng Alexandrian 63 3.2.2 Định dạng GOF 64 3.2.3 Định dạng Porland 64 3.2.4 Định dạng Coplien 65 3.2.5 Định dạng POSA 65 3.2.6 Định dạng P of EAA 65 3.3 Định dạng GoF mẫu thiết kế 65 3.4 Việc lựa chọn định dạng mẫu thiết kế 67 3.5 Tổng kết chƣơng 67 CHƢƠNG PHÁT TRIỂN MẪU THIẾT KẾ VÀ ỨNG DỤNG 69 4.1 Các mẫu thiết kế đối tƣợng 69 4.1.1 Mẫu đối tƣợng trống 69 4.1.2 Mẫu đối tƣợng vai trò 74 4.1.3 Mẫu đối tƣợng mở rộng 83 4.1.4 Mẫu đối tƣợng kiểu 90 4.2 Mẫu thiết kế Ajax 96 4.2.1 Tổng quan Ajax 96 TIEU LUAN MOI download : skknchat@gmail.com 4.2.2 AJAX 97 4.2.3 AJAX hoạt động nhƣ 97 4.2.4 Các ứng dụng AJAX phổ biến 99 4.2.5 Tổng quan mẫu thiết kế Ajax 99 4.3 Ứng dụng mẫu thiết kế thiết kế khung cho tầng truy cập liệu 101 4.3.1 Đặt vấn đề 101 4.3.2 Mơ hình tầng 101 4.3.3 Cài đặt mơ hình khung cho tầng truy cập liệu 102 4.4 Tổng kết chƣơng 106 KẾT LUẬN 107 TÀI LIỆU THAM KHẢO 108 TIEU LUAN MOI download : skknchat@gmail.com DANH MỤC HÌNH VẼ Hình 1.1 Sơ đồ lớp mẫu Abstract Factory Hình 1.2 Sơ đồ lớp mẫu Abstract Factory Hình 1.3 Sơ đồ lớp mẫu Builder Hình 1.4 Sơ đồ lớp mẫu Factory Method Hình 1.5 Sơ đồ lớp mẫu Prototype 10 Hình 1.6 Sơ đồ lớp mẫu Singleton 12 Hình 1.7 Sơ đồ lớp mẫu Adapter 13 Hình 1.8 Sơ đồ lớp mẫu Bridge 14 Hình 1.9 Sơ đồ lớp minh họa 16 Hình 1.10 Sơ đồ phân cấp 16 Hình 1.11 Sơ đồ lớp mẫu Composite 17 Hình 1.12 Sơ đồ lớp mẫu Decorator 19 Hình 1.12 Sơ đồ minh họa 20 Hình 1.13 Sơ đồ lớp mẫu Facade 20 Hình 1.14 Sơ đồ lớp mẫu Flyweight 22 Hình 1.15 Sơ đồ lớp mẫu Proxy 24 Hình 1.16 Sơ đồ tƣơng tác 26 Hình 1.17 Biểu đồ cộng tác 26 Hình 1.18 Mơ hình lớp 27 Hình 1.19 Sơ đồ lớp mẫu Chain of Responsibility 27 Hình 1.20 Mơ hình tƣơng tác 29 Hình 1.21 Sơ đồ lớp mẫu Command 29 Hình 1.22 Mơ hình cấu trúc 31 Hình 1.22 Mơ hình phân cấp 32 Hình 1.23 Sơ đồ lớp mẫu Interperter 33 Hình 1.24 Mơ hình tƣơng tác 35 Hình 1.25 Sơ đồ lớp mẫu Iterator 35 Hình 1.26 Hộp thoại biểu diễn widget 37 Hình 1.27 Biều đồ đối tƣợng 38 Hình 1.28 Biều đồ diễn tiến 38 Hình 1.29 Biều đồ lớp 39 Hình 1.30 Sơ đồ lớp mẫu Mediator 39 Hình 1.31 Sơ đồ lớp mẫu Memento 41 Hình 1.32 Sơ đồ lớp mẫu Observer 42 Hình 1.33 Sơ đồ lớp mẫu State 43 Hình 1.34 Sơ đồ lớp mẫu Strategy 44 Hình 1.35 Sơ đồ lớp mẫu Template Method 45 Hình 1.36 Sơ đồ lớp mẫu Visitor 46 Hình 2.1 Mơ hình thừa kế lớp 56 Hình 2.2 Mơ hình thừa kế lớp cải tiến 57 Hình 4.1 Sơ đồ lớp mẫu Null Object 70 Hình 4.2 Sơ đồ lớp nghiệp vụ ngân hàng 75 Hình 4.3 Sơ đồ phân lớp 76 Hình 4.4 Sơ đồ lớp mẫu Role Object 77 Hình 4.5 Sơ đồ lớp mẫu Role Object đệ quy 81 TIEU LUAN MOI download : skknchat@gmail.com Hình 4.6 Sơ đồ tƣơng tác vai trò lõi 81 Hình 4.7 Sơ đồ lớp minh họa 85 Hình 4.8 Sơ đồ lớp mẫu Extension Object 86 Hình 4.9 Sơ đồ lớp mẫu Extension Object rút gọn 88 Hình 4.10 Sơ đồ lớp Movie, Videotape 91 Hình 4.11 Sơ đồ lớp, đối tƣợng 91 Hình 4.12 Sơ đồ lớp mẫu Type Object 92 Hình 4.13 Sơ đồ lớp, đối tƣợng mẫu Type Object 93 Hình 4.14 Ứng dụng web truyền thống (trái) ứng dụng AJAX 98 Hình 4.15 Tƣơng tác đồng ứng dụng web truyền thống (trên) dị ứng dụng AJAX 98 Hình 4.16 Nhóm mẫu AJAX 100 Hình 4.17 Mơ hình ứng dụng 3-tầng 101 Hình 4.18 Biểu đồ lớp tầng truy cập liệu 103 TIEU LUAN MOI download : skknchat@gmail.com HỆ THỐNG CÁC TỪ VIẾT TẮT Kí hiệu viết tắt Tên tiếng Anh GoF Gang of Four OMT Object Modeling Technique AJAX Asynchronous Ý nghĩa Kỹ thuật mơ hình hóa đối tƣợng JavaScript JavaScript XML không đồng and XML UI User Interface Giao diện ngƣời dùng PL Presentation Layer Tầng trình diễn BL Business Layer Tầng nghiệp vụ DL Data Layer Tầng liệu TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung MỞ ĐẦU Một tiêu chuẩn quan trọng để đánh giá chất lƣợng phần mềm khả tái sử dụng Thực tế cho thấy dự án phần mềm thực thể phức tạp Nhƣng thực thể ta tìm thấy lặp lại nhiều điểm Qua trình nghiên cứu, hƣớng giải cho vấn đề mang tính chất lặp lặp lại phát triển hệ thống phần mềm đƣợc chuyên gia đúc kết nâng lên mức tổng quát Từ hình thành khái niệm mẫu thiết kế Năm 1995, Erich Gamma cộng ông công bố sách “Elements of reusable Object Oriented Software” đánh dấu đời thiết kế mẫu Đây bƣớc tiến vô quan trọng việc thiết kế phần mềm hƣớng đối tƣợng Hiện nay, nhiều hệ thống phần mềm đƣợc thiết kế theo cách tiếp cận hƣớng đối tƣợng áp dụng mơ hình mẫu thiết kế (Design Pattern) Mẫu thiết kế giúp ta giải tốn nhanh gọn, có khả tái sử dụng mà không cần phải thiết kế lại Mẫu thiết kế dựa nguyên lý thiết kế hƣớng đối tƣợng đƣợc xem nhƣ cơng cụ để phát mơ tả tốn mức trừu tƣợng cao mà bao hàm đầy đủ ngữ nghĩa toán ứng dụng Erich Gamma cộng đƣa 23 mẫu thiết kế tiếng (các mẫu GOF – Gang of Four) Các mẫu thiết kế đƣợc áp dụng thành cơng thiết kế phần mềm hƣớng đối tƣợng Tuy nhiên với phát triển nhanh chóng cơng nghiệp phần mềm phƣơng pháp thiết kế hƣớng đối tƣợng, nảy sinh nhiều tình địi hỏi phát sinh mẫu thiết kế cho phù hợp Cho đến có nhiều mẫu thiết kế đƣợc đƣa dựa việc cải biến mẫu nhƣ mẫu thiết kế Do cần thiết có nghiên cứu phƣơng pháp luận mẫu thiết kế Đồng thời sở đƣa phƣơng pháp để xây dựng lên mẫu thiết kế tình phát sinh Vì lựa chọn đề tài “Phát triển mẫu thiết kế phần mềm ứng dụng” để tìm lời giải đáp cho vấn đề (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung CHƢƠNG TỔNG QUAN VỀ MẪU THIẾT KẾ PHẦN MỀM 1.1 Vấn đề thiết kế phần mềm hƣớng đối tƣợng Việc thiết kế phần mềm nói chung phần mềm hƣớng đối nói riêng việc khó Thiết kế phần mềm hƣớng đối tƣợng phải đảm bảo giải đƣợc vấn đề mong muốn, đồng thời phải đảm bảo đƣợc mở rộng tƣơng lai mà không hải thiết kế lại Tuy nhiên thiết kế hƣớng đối tƣợng phần mềm, khơng thể đảm bảo thiết kế đáp ứng đƣợc yêu cầu Do cần đƣa vài phƣơng án để từ lựa chọn đƣợc phƣơng án tốt Phƣơng án đƣợc dùng lại nhiều lần gặp vấn đề tƣơng tự Ta hay gặp vấn đề tƣơng tự đƣợc phát triển thành mẫu thiết kế, để sử dụng cho hệ thống phần mềm ứng dụng 1.2 Khái niệm Mẫu thiết kế Mẫu tồn thời gian dài q trình phát triển phần mềm, nhiên chƣa có định nghĩa hồn thiện cho Mẫu mơ tả vấn đề cách lặp lặp lại giải pháp cho vấn đề Nó đƣợc xem nhƣ khuôn mẫu đƣợc áp dụng để giải trƣờng hợp loại vấn đề Mẫu thiết kế đƣợc dùng công nghệ phần mềm giải pháp cho vấn đề thiết kế hệ thống phần mềm Đây tập giải pháp đƣợc cơng nhận có giá trị ngƣời phát triển phần mềm áp dụng để giải vấn đề tƣơng tự Cũng nhƣ phân tích thiết kế hƣớng đối tƣợng, việc sử dụng mẫu thiết kế cần phải đạt đƣợc khả tái sử dụng giải pháp chuẩn vấn đề xảy thƣờng xuyên Christopter Alexander định nghĩa [1]: “Mỗi mẫu mô tả vấn đề mang tính chất xuất lặp lặp lại môi trƣờng chúng ta, giải pháp cho vấn đề đó” Một định nghĩa khác mẫu Gamma [1]: “Một mẫu thể chất cốt lõi giải pháp cho vấn đề xuất lặp lặp lại ngữ cảnh đƣợc định rõ” Mỗi mẫu mô tả vấn đề xảy lặp lặp lại môi trƣờng mô tả cốt lõi giải pháp vấn đề Bằng cách bạn dùng triệu lần mà khơng làm giống lần 1.3 Nội dung mẫu thiết kế GOF [6] 1.3.1 Nhóm mẫu tạo lập Nhóm gồm có mẫu: AbstractFactory, Abstract Method, Builder, Prototype Singleton Nhóm liên quan tới việc khởi tạo thể nghiệm đối tƣợng, tách biệt với cách đƣợc thực từ ứng dụng Xem thông tin mẫu nhóm dựa vào biểu đồ phụ thuộc vào mẫu đó, mẫu thiên hành vi hay cấu trúc (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung 1.3.1.1 Abstract Factory Trong hệ điều hành giao diện đồ hoạ, công cụ cung cấp giao diện ngƣời dùng dựa chuẩn xem cảm nhận (look-and–feel) Có nhiều kiểu giao diện xem cảm nhận giao diện ngƣời dùng khác cuộn tài liệu (scroll bar), cửa sổ (window), nút bấm (button), hộp soạn thảo (editbox), Nếu xem chúng đối tƣợng chúng có số thuộc tính hành vi giống mặt hình thức nhƣng lại khác cách thực Chẳng hạn đối tƣợng button, window editbox có thuộc tính chiều dài, rộng, cao, toạ độ,… phƣơng thức Resize(), SetPosition(), Tuy nhiên đối tƣợng gộp vào lớp theo nguyên lý xây dựng lớp, đối tƣợng thuộc lớp phải có phƣơng thức hoạt động nhƣ nhau, đối tƣợng có giao diện nhƣng cách thực hành vi lại hoàn toàn khác Vấn đề đặt xây dựng lớp tổng quát, chứa điểm chung đối tƣợng để từ dễ dàng sử dụng lại Ta gọi lớp lớp WidgetFactory Các lớp đối tƣợng window, button editbox thừa kế lớp Trong thiết kế hƣớng đối tƣợng, ta xây dựng mơ hình lớp nhƣ sau: Hình 1.1 Sơ đồ lớp mẫu Abstract Factory Lớp WidgetFactory có phƣơng thức CreateScrollBar() CreateWindow() Đây lớp trừu tƣợng tổng quát cho MotifWidgetFactory PMWidgetFactory Các lớp MotifWidgeFactory PMWidgetFactory thừa kế lớp WidgetFactory Các nhóm lớp Window ScrollBar lớp trừu tƣợng Lớp Window có lớp cụ thể PMWindow MotifWindow Lớp ScrollBar có lớp cụ thể PMScrollBar MotifScrollBar Các đối tƣợng thuộc lớp đƣợc đối tƣợng thuộc lớp (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung Wars mà John thuê mà Sue thuê Nó Videotape biết kiểu mối liên hệ thể movie xác định Nếu phim mới, chẳng hạn nhƣ Independence Day đƣợc thuê Jack, hệ thống tạo Movie Videotape mà trỏ đến Movie Movie Independence Day băng copy Independence Day mà Jack thuê Videotape, Movie mối quan hệ is-instance-of chúng (a Videotape thể Movie) ví dụ mẫu Type Object Nó đƣợc sử dụng để tạo thể tập lớp số lƣợng lớp khơng biết Nó cho phép ứng dụng tạo lớp lúc thực thi lớp thể thực lớp Ứng dụng phải sau trì mối quan hệ thể thực lớp chúng – nhƣ thực thể Vấn đề mẫu Type Object hai lớp cụ thể, lớp mà thực thể chúng biểu diễn thể ứng dụng lớp mà thể biểu diễn kiểu thể ứng dụng Mỗi thể ứng dụng có trỏ tới kiểu tƣơng ứng Sử dụng mẫu Type Object khi:  Các thể lớp cần đƣợc nhóm dựa theo thuộc tính hay cách cƣ xử thơng dụng chúng  Một lớp cần lớp cho nhóm để thực thi cách cƣ xử/ thuộc tính thơng dụng nhóm  Một lớp u cầu số lƣợng lớn lớp hay đa dạng tổng thể lớp đƣợc yêu cầu mà k đƣợc biết  Bạn muốn tạo nhóm lúc thực thi mà khơng đốn trƣớc đƣợc q trình thiết kế  Bạn muốn thay đổi lớp đối tƣợng sau đƣợc khởi tạo mà khơng phải biến đổi thành lớp  Bạn muốn xếp nhóm cách đệ quy cốt để nhóm thân hạng mục nhóm khác Hình 4.12 Sơ đồ lớp mẫu Type Object Mẫu Type Object pattern có lớp cụ thể, biểu diễn đối tƣợng lớp lại biểu diễn kiểu chúng Mỗi đối tƣợng có trỏ tới kiểu tƣơng ứng 92 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung Hình 4.13 Sơ đồ lớp, đối tượng mẫu Type Object    TypeClass (Movie)  Là lớp đối tƣợng kiểu (TypeObject)  Có thực thể riêng rẽ cho kiểu đối tƣợng TypeObject (Star Wars, The Terminator, Independence Day)  Là thể TypeClass  Biểu diễn kiểu đối tƣợng Thiết lập tất thuộc tính đối tƣợng mà tƣơng tự cho tất đối tƣợng kiểu Class (Videotape)  Là lớp đối tƣợng  Biểu diễn thực thể của TypeClass  Object (John’s Star Wars, Sue’s Star Wars)  Là thể lớp  Biểu diễn hạng mục mà có ngữ cảnh Thiết lập tất thuộc tính hạng mục mà phân biệt hạng mục kiểu  Có TypeObject kết hợp mà mơ tả kiểu Ủy thác thuộc tính đƣợc định nghĩa kiểu cho TypeObject TypeClass Class lớp TypeObject Object thể lớp tƣơng ứng Vì với thể nào, TypeObject hay Object biết lớp Thêm vào đó, Object có trỏ tới TypeObject cốt để biết TypeObject Object sử dụng TypeObject để xác định cƣ xử kiểu Khi Object nhận yêu cầu mà xác định kiểu nhƣng khơng xác định thực thể, ủy thác yêu cầu cho TypeObject Một TypeObject có trỏ tới tất Object Do Movie TypeClass Videotape Class Các thực thể Movie nhƣ Star Wars, Terminator, Independence Day TypeObject Bởi 93 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung Object có trỏ tới TypeObject nó, John’s videotape Sue’s videotape có trỏ tới Movie tƣơng ứng, mà trƣờng hợp Star War cho hai viedeotape Đó làm videotape biết chúng chứa StarWar số movie khác Sự cộng tác:  Một Object nhận loại yêu cầu: chúng đƣợc xác định thể đƣợc xác định kiểu Nó xử lý yêu cầu thể thân ủy thác yêu cầu kiểu cho TypeObject  Một số client muốn tƣơng tác trực tiếp với TypeObject Chẳng hạn, thay lặp lại thơng qua tất Videotape mà cửa hàng có kho, ngƣời thuê muốn xem qua tất Movie mà cửa hàng đề xuất  Nếu cần thiết, TypeObject có tập trỏ tới Object Theo cách này, hệ thống dễ dàng tìm đƣợc Object mà phù hợp với mô tả TypeObject Điều tƣơng tự với tất tin nhắn thể mà lớp Smalltalk thực thi Cho ví dụ, ngƣời th tìm Movie lơi cuốn, sau muốn biết videotape mà cửa hàng có mà phù hợp với mơ tả Các thuận lợi Type Object pattern:  Việc tạo lớp thực thi Mẫu cho phép lớp đƣợc tạo lúc thực thi Các lớp không thực lớp, chúng thể đƣợc gọi TypeObject mà đƣợc tạo TypeClass giống nhƣ thể đƣợc tạo lớp  Tránh bùng nổ lớp Hệ thống cần nhiều lớp để biểu diễn kiểu khác Object Thay số lƣợng lớn lớp con, hệ thống sử dụng TypeClass lƣợng lớn TypeObject  Ẩn tách biệt thực thể kiểu Một client Object không cần quan tâm tách biệt Object TypeObject Client tạo yêu cầu Object, Object lần lƣợt định yêu cầu phía TypeObject Client mà quan tâm tới TypeObject cộng tác trực tiếp với chúng mà qua Object  Thay đổi kiểu động Mẫu cho phép Object thay đổi cách động TypeObject mà có ảnh hƣởng thay đổi lớp Điều đơn giản việc biến đổi đối tƣợng thành lớp  Việc phân chia lớp cách độc lập TypeClass Class đƣợc tạo lớp cách độc lập 94 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung  Các đối tƣợng đa kiểu Mẫu cho phép Object có đa TypeObject, xác định số phần kiểu Object Object phải sau định cách cƣ xử kiểu để ủy thác cho TypeObject Các bất lợi Type Object pattern:  Việc thiết kế phức tạp Mẫu đại diện đối tƣợng logic lớp Mối quan hệ chúng, thứ kiểu nó, khó để hiểu Điều gây bối rối cho ngƣời làm mơ hình nhƣ ngƣời lập trình Khó để nhận hay giải thích mối quan hệ TypeObject Object Điều gây khó hăn cho việc đơn giản hóa khả bảo trì Nói theo cách ngắn gọn, sử dụng thừa kế, dễ dàng  Sự thực thi phức tạp Mẫu loại bỏ thực thi khác khỏi lớp đƣa vào trạng thái thể TypeClass Trong lớp thực thi phƣơng thức khác nhau, TypeClass thực thi phƣơng thức cách trạng thái TypeObject phải tạo thể cƣ xử khác  Việc quản lý tham chiếu Mỗi Object phải giữ tham chiếu tới TypeObject Chỉ object biết lớp gì, Object biết TypeObject Nhƣng hệ thống đối tƣợng hay ngôn ngữ thiết lập tự động bảo trì mối quan hệ lớp – thực thể, ứng dụng phải tự thiết lập trì mối quan hệ TypeObject-Object Có số vấn đề mà bạn phải luôn tâm thực thi mẫu Type Object:  Object tham chiếu TypeObject: Object có tham chiếu tới TypeObject ủy thác số trách nhiệm cho TypeObject Một Object TypeObject phải đƣợc xác định Object đƣợc tạo  Các cƣ xử Object TypeObject: cƣ xử Object đƣợc thực thi lớp đƣợc ủy thác cho TypeObject TypeObject thực thi cách cƣ xử thông dụng đổi với kiểu Object thực thi cách cƣ xử mà khác cho thể kiểu Khi Object ủy thác cách cƣ xử cho TypeObject nó, chuyển tiếp tham chiếu tới thân cốt để TypeObject truy cập liệu hay cách cƣ xử Object định thực phép toán mở rộng trƣớc sau chuyển tiếp yêu cầu, tƣơng tự nhƣ cách Decorator mở rộng yêu cầu chuyển tiếp tới Component  TypeObject khơng phải đa thừa kế Class - TypeObject - mẫu cho đối tƣợng Các thông điệp mà Object hiểu đƣợc xác định Class nó, khơng phải TypeObject Sự thực thi Class định thông điệp 95 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung chuyển tiếp tới TypeObject Object khơng thừa kế thơng điệp TypeObject Mỗi bạn thêm cƣ xử vào TypeClass, bạn phải thêm phƣơng thức ủy thác cho Class trƣớc cách cƣ xử sẵn sàng cho Object Hay sử dụng Type Object Pattern mẫu mơ hình liệu thảo luận nhƣ ngun lý mơ hình Ơng sử dụng để định nghĩa kiểu cho hoạt động, sản phẩm, phần Material Safety Data Sheet Mẫu Power Type Odell Type Object Pattern Ơng giảit thích ví dụ lồi Một lồi mơ tả kiểu Một thuộc loài tƣơng ứng mà mơ tả kiểu Mẫu Type Object tƣơng tự mẫu Strategy State Cả mẫu chia đối tƣợng thành phần đối tƣợng thực ủy nhiệm cho đối tƣợng Type Object, Strategy State Strategy State thƣờng cƣ xử cách tinh khiết Type Object thƣờng giữ nhiều trạng thái đƣợc chia sẻ Stategy thay đổi thƣờng xuyên Type Object thay đổi Một Strategy thƣờng có trách nhiệm chính, Type Object thƣờng có nhiều trách nhiệm Vì mẫu khơng hồn tồn giống sơ đồ đối tƣợng chúng tƣơng tự Một Object tƣơng tự Decorator với Type Object Một đối tƣợng đối tƣợng kiểu có giao diện tƣơng tự đối tƣợng lựa chọn thông điệp để chuyển tiếp tới đối tƣợng kiểu Dẫu Decorator khơng cƣ xử nhƣ thực thể Component Type Object xem tƣơng tự nhƣ Flyweight đối tƣợng Hai đối tƣợng sử dụng Type Object nghĩ chúng có copy chúng Nhƣng thay vào chia sẻ đối tƣợng Nhƣng quan trọng không đối tƣợng thay đổi trạng thái bên Type Object 4.2 Mẫu thiết kế Ajax 4.2.1 Tổng quan Ajax Thế hệ Web 2.0 vừa bắt đầu có lẽ phải trải qua chặng đƣờng dài phía trƣớc để làm thay đổi vốn trở nên quen thuộc giai đoạn Đóng vai trị then chốt giai đoạn thứ hai web tổ hợp công nghệ AJAX Những thành công vang dội hấp dẫn kì lạ Gmail, Google Suggest Google Maps khiến cho Ajax đƣợc ý cách đặc biệt Dù chƣa thực đƣợc sẵn sàng đón nhận, nhiều ngƣời cho ứng dụng AJAX phát triển cách nhanh chóng Thuật ngữ AJAX đƣợc xuất vào ngày 18/2/2005 báo AJAX: A New Approach to Web Applications Jesse James Garrett thuộc cơng ty Adapativeath Ngay sau thuật ngữ AJAX nhanh chóng trở lên phổ biến 96 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung cộng đồng phát triển Web trở thành trung tâm câu chuyện liên quan đến hệ Web 2.0 4.2.2 AJAX AJAX viết tắt cụm từ Asynchronous JavaScript and XML (JavaScript XML không đồng bộ) [5], kỹ thuật cho phép tăng tốc độ ứng dụng web cách chia nhỏ liệu hiển thị cần thiết, thay tải tải lại tồn trang web Kỹ thuật kết hợp hai tính mạnh JavaScript đƣợc nhà phát đánh giá cao:  Gửi yêu cầu đến máy chủ mà không cần nạp lại trang  Phân tách làm việc với XML AJAX công nghệ đơn lẻ mà kết hợp nhóm cơng nghệ: CSS , DOM, XMLHttpRequest, JavaScript Trong  Trình bày trang web theo tiêu chuẩn XHTML CSS;  Biểu diễn động tƣơng tác DOM (Document Object Model);  Trao đổi xử lý liệu XML XSLT;  Truy cập liệu không đồng MLHttpRequest;  Liên kết công nghệ với JavaScript 4.2.3 AJAX hoạt động Trong ứng dụng web truyền thống, cần thay đổi liệu trang web, ngƣời dùng tạo yêu cầu HTTP tới server Server thực số thao tác xử lý nhƣ lấy liệu, tính tốn, thẩm định tính hợp lệ thơng tin, sau gửi lại trang web hoàn chỉnh tới client yêu cầu Tuy nhiên, kỹ thuật có hạn chế là: server thực cơng việc xử lý client phải chờ đến server xử lý xong tiếp tục thực công việc khác Để khắc phục hạn chế nêu trên, ngƣời ta đƣa kỹ thuật trung gian, chế Ajax, client server Khi đó, yêu cầu gửi nhận AJAX Engine thực Mọi thao tác ngƣời dùng gửi lệnh JavaScript tới xử lý Ajax, thay tạo truy vấn HTTP tới máy chủ Nếu cần thông tin từ server, nhƣ tải bổ sung mã giao diện hay liệu cập nhật, AJAX truyền yêu cầu tới server cách không đồng bộ, thông thƣờng sử dụng XML, mà không làm gián đoạn tƣơng tác ngƣời dùng với ứng dụng web Thay trả liệu dƣới dạng HTML CSS trực tiếp cho trình duyệt, server gửi liệu phản hồi dƣới dạng XML tới Ajax Engine AJAX Engine tiếp nhận, phân tách chuyển hóa thành XHTML CSS để hiển thị trình duyệt Việc đƣợc thực client nên giảm tải nhiều cho server 97 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung Hình 4.14 Ứng dụng web truyền thống (trái) ứng dụng AJAX Nhƣ vậy, việc sử dụng chế kỹ thuật Ajax làm giảm trình “đi lại” thông tin thời gian phản ứng Thay tải lại tồn trang web, nạp thơng tin đƣợc thay đổi, cịn phần khác đƣợc giữ ngun Vì thế, ngƣời dùng khơng gặp tƣợng cửa sổ trắng biểu tƣợng đồng hồ cát - dấu hiệu server thực nhiệm vụ Hình 4.15 Tương tác đồng ứng dụng web truyền thống (trên) dị ứng dụng AJAX 98 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung 4.2.4 Các ứng dụng AJAX phổ biến Hãng Google đầu tƣ nhiều vào việc phát triển ứng dụng AJAX Các ứng dụng họ gần đây, từ Orkut, Gmail đến phiên thử nghiệm Google Groups, ứng dụng công nghệ AJAX Google Suggest hiển thị thuật ngữ gợi ý gần nhƣ ngƣời sử dụng chƣa gõ xong từ khóa Với Google Maps, ngƣời dùng xê dịch, kéo thả đồ nhƣ môi trƣờng desktop Yahoo dự định mắt Yahoo Mail Beta sử dụng AJAX toàn giới Hãng xây dựng công cụ Ajax nhanh chóng cập nhật thơng tin sân bay, chuyến bay, thời gian phục vụ khách hàng Microsoft triển khai chƣơng trình Windows Live Mail Windows Live Messenger hỗ trợ AJAX Những ứng dụng cho thấy AJAX công nghệ xa xôi mà diện giới thực, từ mơ hình đơn giản nhƣ Google Suggest đến phức tạp nhƣ Google Maps 4.2.5 Tổng quan mẫu thiết kế Ajax Ajax chứa đựng nhiều hứa hẹn việc thiết kế ứng dụng web Hiện đƣợc sử dụng nhiều ứng dụng tiêu biểu Khi Ajax bắt đầu, mẫu thiết kế đƣợc ứng dụng rộng rãi Mẫu thiết kế giúp cho trình phát triển phần mềm trở lên hiệu đẩy nhanh q trình lập trình thơng thƣờng loại bỏ nhu cầu viết mã dƣ thừa qua dự án Ajax design pattern lên với việc sử dụng ngày phổ biến việc phát triển ứng dụng web Ajax design patters giúp cho ta cách thực hành tốt mà cải tiến cách nhanh chóng dự án phát triển ứng dụng web Nó cho ngƣời dùng biết làm để áp dụng nguyên lý thiết kế cách hiệu ứng dụng web sử dụng cơng nghệ Ajax Có thể đáng ngạc nhiên có nhiều mẫu thiết kế Ajax mà thuật ngữ Ajax xuất Dù sao, ý tƣởng khơng phải mới, có nhiều phần liên quan Ajax web trƣớc thuật ngữ hình thành để mơ tả chúng Đã có hàng trăm site sử dụng Ajax cung với công cụ mạnh nhƣ RSS, Technorati, Google Wikis để xác định chúng chúng sẵn sàng Hiện xây dựng đƣợc 60 mẫu Ajax đƣợc phân làm nhóm [9]: Foundational Technology, Programming, Functionality and Usability, Development Các mẫu Foundational Technology: gồm có 11 mẫu Là mẫu thiết kế mức thấp, phù hợp cho ngƣời nghiên cứu Ajax Là khối làm sẵn để xây dựng mà phân biệt Ajax với cách tiếp cận thông thƣờng giải thích cách sử dụng 99 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung đặc trƣng Các mẫu đƣợc xem nhƣ “nguyên tử” ngôn ngữ mẫu, theo ý nghĩa tất mẫu sau đƣợc xây dựng kỹ thuật tảng Để giữ cho mẫu Ajax đƣợc xúc tích, bạn bắt gặp công nghệ mà thêm thứ vào việc phát triển web thông thƣờng Các mẫu Programming: gồm 23 mẫu Giải thích làm thành phần đƣợc kết hợp theo góc độ bảo trì thực thi Chúng đặc trƣng kiến trúc mã mà thỏa mãn nguyên lý thiết kế phần mềm Chúng bao gồm thứ khác nhƣ việc thiết kế dịch vụ web, quản lý luồng thơng tin trình duyệt server, định vị DOM phản hồi đến tối ƣu hóa thực thi Các mẫu Functionality and Usability: gồm 28 mẫu, hƣớng dẫn giao diện ngƣời dùng khái niệm khả sử dụng Chúng thứ quan trọng với ngƣời dùng, bao gồm widgets kỹ thuật tƣơng tác, cấu trúc trì thứ trang web, hiệu ứng trực quan chức mà Ajax có khả Các mẫu Development: mẫu Chúng mẫu tiến trình đƣợc sử dụng thực hành cho phát triển, nhƣ đối lập với mẫu trƣớc, thứ mà tồn bên cạnh ứng dụng Ajax Các thực hành phát vấn đề chạy kiểm thử Hình 4.16 Nhóm mẫu AJAX Hình bên vị trí nhóm thiết kế mẫu Ajax ứng dụng Ajax Các mẫu nhóm đầu sản phẩm, nhóm cịn lại, Development patterns tiến trình Trong mẫu hƣớng sản phẩm, Foundational Technologies giải thích làm sử dụng công nghệ web thô nhƣ XMLHttpRequest DOM Ở mức trung bình Programming Patterns, hƣớng dẫn kế hoạch sử dụng công nghệ Ở mức cao Functionality and Usability patterns Foundational Technology Patterns lõi ngơn ngữ mẫu Ajax Các nhóm cịn lại tất đƣợc xây dựng đó, độc lập với nhóm khác 100 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung 4.3 Ứng dụng mẫu thiết kế thiết kế khung cho tầng truy cập liệu 4.3.1 Đặt vấn đề Khi xây dựng phần mềm, lập trình viên thƣờng quan tâm đến hệ sở liệu mà ứng dụng tƣơng tác Điều có trở ngại ngƣời dùng thay đổi hệ liệu chƣơng trình khơng thực đƣợc, phải cài đặt lại Một trƣờng hợp khác số phần mềm tƣơng tác với nhiều hệ sở liệu khác nhau, nhƣ: DB2, MySQL, SQLServer, Oracle, … Lúc buộc phải cài đặt điều khiển truy cập liệu theo yêu cầu Điều phát sinh số vấn đề: tài nguyên sở liệu đƣợc khởi tạo chậm, mã cài đặt truy cập liệu phức tạp, cồng kềnh dẫn đến khó phát triển bảo trì Dựa lý thuyết thiết kế chƣơng trình theo mơ hình ba tầng (3-Layer), luận văn áp dụng mẫu thiết kế (Factory Method, Singleton Null Object) để thiết kế cài đặt Framework cho tầng truy cập liệu cách tổng quát, sử dụng đối tƣợng ADO.Net nhằm khắc phục nhƣợc điểm nêu 4.3.2 Mơ hình tầng Ngày nay, đa phần ứng dụng dựa mơ hình 2-tầng Client/Server, tất mã lệnh giao diện ngƣời dùng (UI), logic nghiệp vụ (Business logic) truy cập liệu (Data access) đƣợc viết “bên dƣới” tầng giao diện Việc ứng dụng mơ hình 2-tầng làm cho ngƣời phát triển ban đầu dễ triển khai thời gian ngắn Tuy nhiên có nhƣợc điểm là: khó thay đổi theo nghiệp vụ chúng bị thay đổi u cầu thực tế, khó bảo trì, tích hợp khơng có khả kế thừa Để quản lý thành phần hệ thống cách độc lập, không ảnh hƣởng thay đổi, ngƣời ta nhóm thành phần có chức với nhau, phân chia nhiệm vụ cho nhóm để cơng việc khơng bị chồng chéo ảnh hƣởng lẫn Khi đó, ngƣời ta dùng kiến trúc đa tầng (hay nhiều tầng), tầng thực chức đó, mơ hình 3-tầng MicroSoft đề xuất phổ biến nhất, gồm: tầng trình diễn PL (Presentation Layer), tầng nghiệp vụ BL (Business Layer) tầng liệu DL (Data Layer) Hình 4.17 Mơ hình ứng dụng 3-tầng 101 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung Mỗi tầng tƣơng ứng với ba phần tử cần thiết kiến trúc ứng dụng: tƣơng tác, thao tác lƣu trữ Cụ thể nhƣ sau:  PL: giao tiếp với ngƣời dùng cuối để thu thập liệu hiển thị kết / liệu thông qua thành phần giao diện ngƣời dùng  BL: thao tác thông tin theo yêu cầu toán ngƣời sử dụng  DL: tổ chức lƣu trữ truy xuất liệu Các tầng giao tiếp với thông qua dịch vụ mà tầng cung cấp để tạo nên ứng dụng Tầng không cần biết bên tầng làm mà quan tâm tầng cung cấp dịch vụ cho sử dụng Giao diện ngƣời dùng khơng gọi trực tiếp tầng DL ngƣợc lại, lý an tồn giao tác thƣờng đƣợc quản lý tầng BL Tất trao đổi với sở liệu phải thông qua giao diện dịch vụ tầng BL 4.3.3 Cài đặt mơ hình khung cho tầng truy cập liệu Để dễ hình dung ta xét mơ hình ứng dụng đƣợc thiết kế theo mơ hình 3-tầng nhƣ hình dƣới Tầng DL lƣu trữ truy xuất liệu, đƣợc chia thành hai phần: DataAccess DataStorage:  DataStorage: lƣu trữ liệu thực dịch vụ hệ quản trị sở liệu nhƣ SQL Server, Oracle, DB2, MySQL, …  DataAccess: gồm đối tƣợng tác nghiệp (Business Object) đối tƣợng kết nối, truy cập liệu Business Object cung cấp dịch vụ từ tầng DL cho tầng trên, nhƣ dịch vụ: chèn, cập nhật, xóa liệu Tầng PL DL độc lập nhau, trao đổi với qua tầng BL Do đó, việc thay đổi hệ quản trị sở liệu SQL Server thành Oracle, Oracle thành DB2,… hay ngƣợc lại giao diện chƣơng trình khơng thay đổi Trong cài đặt khung cho tầng truy cập liệu tổng quát, ta xây dựng Business Object dựa đối tƣợng ADO.Net để cung cấp dịch vụ cho tầng BL bảo đảm độc lập hai tầng PL DL Có cách xây dựng lớp dịch vụ có phƣơng thức chứa điều khiển switch để biết đƣợc kiểu điều khiển truy cập sở liệu đƣợc thực hiện, cài đặt mã tƣơng tác tƣơng ứng Giả sử phƣơng thức đƣợc cài đặt nhƣ sau : public override void MyProcedure(proType ProviderType){ switch(proType){ case ProviderType.SqlClient: objSqlCommand.SqlProcedure () break; case ProviderType.OleDb: objOleDbCommand.QleDbProcedure() 102 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung break; default: … break; } } Cách thiết kế cài đặt nhƣ có số nhƣợc điểm: mã lệnh cài đặt nhiều phải viết lại đoạn mã tƣơng tự nhau, phức tạp không cần thiết Mặt khác muốn truy cập sở liệu phải cài đặt biên dịch lại lớp Giải vấn đề cách sử dụng mẫu Factory Method, Singleton Null Object để cài đặt Framework cho tầng truy cập liệu tổng quát Biểu đồ lớp cho tốn đƣợc trình bày hình dƣới, đó, lớp DataAccessBaseClass lớp kế thừa Business Object chứa dịch vụ cung cấp cho tầng BL tƣơng tác với sở liệu Hình 4.18 Biểu đồ lớp tầng truy cập liệu Lớp DataAccessBaseClass lớp Product gồm thuộc tính phƣơng thức tổng quát để tƣơng tác với hệ sở liệu, phƣơng thức phƣơng thức đƣợc nạp chồng Các lớp OdbcDataAccess, OleDbDataAccess, OracleDataAccess, SqlDataAccess, NullObject (là lớp ConcreteProduct) đƣợc kế thừa từ lớp DataAccessBaseClass cài đặt chi tiết phƣơng thức GetDataProviderConnection() (trả đối tƣợng chuỗi kết nối đến hệ sở liệu tƣơng ứng) GetDataProviderDataAdapter() (tạo Adapter ứng với hệ sở liệu đó) Các lớp đƣợc xây dựng dựa theo mẫu Singleton để đảm bảo tính 103 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung thể Lớp NullObject cài đặt phƣơng thức thực thi ứng xử mặc định hành vi đối tƣợng lớp lại Phƣơng thức GetDataAccessLayer() phƣơng thức static đƣợc nạp chồng, nhận tham số có kiểu ProviderType (gồm giá trị : Odbc, OleDb, Oracle, Sql) để định đối tƣợng ứng với điều khiển truy cập liệu (Data Provider) đƣợc tạo Nội dung lớp chứa phƣơng thức nhƣ sau : public class ConcreteCreator : Creator{ private ConcreteCreator() {} //Lấy giá trị thiết lập tệp tin cấu hình private static string GetAppSetting(string setting){ string val; try { val = System.Configuration.ConfigurationSettings AppSettings[setting].ToString(); } catch (NullReferenceException e){ val = ""; } if (val == null) val = ""; return val; } /*Lấy chuỗi kết nối database cách đọc tệp tin cấu hình (app.config)*/ private static string GetConnectionString(){ string val; val = "server=" + GetAppSetting("Datasource") + ";database=" + GetAppSetting("Database") + ";uid=" + GetAppSetting("Userid") + ";pwd=" + GetAppSetting("Password") + ((GetAppSetting("Timeout").Length > 0) ? ";Connection Timeout=" + GetAppSetting("Timeout"): ""); return val; } /*Xây dựng data provider tầng truy cập liệu dựa thiết lập cấu hình ứng dụng Tập tin cấu hình ứng dụng phải chứa key: "DataProviderType" key : giá trị giá trị định nghĩa (sql,oracle,access,odbc,oledb) "ConnectionString" key : chuỗi kết nối database*/ public static DataAccessBaseClass GetDataAccessLayer(){ if (GetAppSetting("DataProviderType") == null ||GetAppSetting("Datasource") == null || GetAppSetting("Database") == null) 104 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung throw new ArgumentNullException("Chưa định 'DataProviderType' chưa định 'Server' chưa định 'Database' tệp tin cấu hình"); DataProviderType dataProvider; try{ dataProvider= (DataProviderType)System.Enum.Parse(typeof(DataProviderTy pe),GetAppSetting("DataProviderType")); } catch(Exception e){ throw new ArgumentException("Kiểu provider cho tầng truy cập liệu không hợp lệ."); } return getDataAccessLayer(dataProvider,GetConnectionString()); } /*Xây dựng data provider tầng truy cập liệu dựa Provider cung cấp Chuỗi connection lấy từ thuộc tính ConnectionString lớp DataAccessBaseClass*/ public static DataAccessBaseClass GetDataAccessLayer(DataProviderType dataProviderType){ return GetDataAccessLayer(dataProviderType, null); } /*Xây dựng data provider tầng truy cập liệu dựa Provider chuỗi connection cung cấp*/ public static DataAccessBaseClass GetDataAccessLayer(DataProviderType dataProviderType, string connectionString) { switch (dataProviderType){ case DataProviderType.OleDb: return new OleDbDataAccess(connectionString); case DataProviderType.Odbc: return new OdbcDataAccess(connectionString); case DataProviderType.Oracle: return new OracleDataAccess(connectionString); case DataProviderType.Sql: return new SqlDataAccess(connectionString); default: return new NullObject (connectionString); } } Để sử dụng Framework ta cần gọi phƣơng thức GetDataAccessLayer sử dụng hai tham số DataProviderType ConnectionString để lấy đối tƣợng điều khiển thao tác với hệ sở liệu tƣơng ứng Các tham số đƣợc ngƣời dùng cung cấp chạy chƣơng trình lấy từ tệp cấu hình app.config Tệp cấu hình đƣợc định dạng dƣới dạng XML có nội dung nhƣ sau : 105 (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung TIEU LUAN MOI download : skknchat@gmail.com (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung (LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung(LUAN.VAN.THAC.SI).Phat.trien.mau.thiet.ke.phan.mem.va.ung.dung

Ngày đăng: 17/12/2023, 01:58

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w