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

BÀI GIẢNG HƯỚNG ĐỐI TƯỢNG

286 3 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

Tiêu đề Tổng Quan Về Cách Tiếp Cận Hướng Đối Tượng
Tác giả Tác giả
Người hướng dẫn Th.S. Nguyễn Mạnh Sơn
Chuyên ngành Lập Trình Hướng Đối Tượng
Thể loại Bài Giảng
Định dạng
Số trang 286
Dung lượng 2,34 MB

Nội dung

BÀI GIẢNG HƯỚNG ĐỐI P T IT LẬP TRÌNH TƯỢNG Hiệu chỉnh: Th.S Nguyễn Mạnh Sơn CuuDuongThanCong.com https://fb.com/tailieudientucntt GIỚI THIỆU Trong năm gần đây, lập trình hướng đối tượng trở nên gần gũi nhờ đời liên tiếp ngơn ngữ lập trình hướng đối tượng Sức mạnh phương pháp lập trình hướng đối tượng thể chỗ khả mơ hình hố hệ thống dựa đối tượng thực tế, khả đóng gói bảo vệ an tồn liệu, khả sử dụng lại mã nguồn để tiết kiệm chi phí tài nguyên; đặc biệt khả chia mã nguồn cộng đồng lập trình viên chuyên nghiệp Những điểm mạnh hứa hẹn thúc đẩy phát triển mơi trường lập trình tiên tiến với công nghiệp lắp ráp phần mềm với thư viện thành phần có sẵn Tài liệu nhằm giới thiệu cho sinh viên nhìn tổng quan phương pháp lập trình hướng đối tượng cung cấp kiến thức, kỹ thuật cho phát triển ứng dụng dựa ngơn ngữ lập trình Java - ngơn ngữ lập trình hướng đối tượng thơng dụng Nội dung tài liệu bao gồm hai phần chính: IT  Phần thứ trình bày khái niệm vấn đề lập trình hướng đối tượng bao gồm tổng quan cách tiếp cận hướng đối tượng khái niệm đối tượng, lớp, kế thừa, đóng gói, đa hình… T  Phần thứ hai trình bày chi tiết phương pháp lập trình hướng đối tượng với ngơn ngữ lập trình Java P Nội dung tài liệu bao gồm chương: Chương 1: Tổng quan cách tiếp cận hướng đối tượng Trình bày tiến hố cách tiếp cận từ lập trình truyền thống đến cách tiếp cận lập trình hướng đối tượng xu hướng phát triển lập trình hướng đối tượng Chương 2: Những khái niệm lập trình hướng đối tượng Trình bày khái niệm như: đối tượng, lớp đối tượng với thuộc tính phương thức, tính kế thừa đa hình, tính đóng gói lập trình hướng đối tượng Chương giới thiệu tổng quan số ngơn ngữ lập trình hướng đối tượng thông dụng Chương 3: Ngôn ngữ Java Giới thiệu khái niệm quy ước ban đầu ngơn ngữ lập trình Java: Cấu trúc chương trình, cách biên dịch, cách đặt tên biến, kiểu liệu, toán tử cấu trúc lệnh ngôn ngữ Java Chương 4: Kế thừa đa hình Java Trình bày kỹ thuật lập trình hướng đối tượng dựa ngôn ngữ Java: Khai báo lớp, thuộc tính phương thức lớp; kỹ thuật thừa kế, lớp trừu tượng, cài đặt nạp chồng đa hình Java CuuDuongThanCong.com https://fb.com/tailieudientucntt Chương 5: Biểu diễn cài đặt cấu trúc liệu trừu tượng Java Trình bày kỹ thuật cài đặt sử dụng số cấu trúc liệu quen thuộc Java: ngăn xếp, hàng đợi, danh sách liên kết, nhị phân đồ thị Chương 6: Lập trình giao diện Java Trình bày kỹ thuật lập trình giao diện Java: Lập trình với giao diện thư viện AWT, lập trình giao diện với Applet HTML, lập trình giao diện nâng cao với thư viện SWING Chương 7: Thư viện Collection áp dụng: Giới thiệu lớp gói thư viện Collection Java, cấu trúc, phương thức cách sử dụng Tài liệu viết nhằm phục vụ mơn học “Lập trình hướng đối tượng” giảng dạy sau môn học Ngôn ngữ lập trình C++ học mơn học sinh viên dễ nắm bắt đặc trưng khác biệt ngôn ngữ Java so với C++ Cuốn sách cịn có kèm theo đĩa CD chứa tồn mã chương trình cài đặt làm ví dụ tập sách P T IT Mặc dù tác giả có nhiều cố gắng trình biên soạn tài liệu này, song khơng thể tránh khỏi thiếu sót Rất mong nhận đóng góp ý kiến sinh viên bạn đồng nghiệp CuuDuongThanCong.com https://fb.com/tailieudientucntt IT PHẦN T NHỮNG KHÁI NIỆM CƠ BẢN P CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG CuuDuongThanCong.com https://fb.com/tailieudientucntt CHƯƠNG TỔNG QUAN VỀ CÁCH TIẾP CẬN HƯỚNG ĐỐI TƯỢNG Nội dung chương nhằm giới thiệu cách tổng quan cách tiếp cận hướng đối tượng Nội dung trình bày bao gồm:  Giới thiệu cách tiếp cận lập trình truyền thống  Giới thiệu cách tiếp cận lập trình hướng đối tượng  So sánh khác biệt hai cách tiếp cận  Xu hướng lập trình hướng đối tượng 1.1 PHƯƠNG PHÁP TIẾP CẬN CỦA LẬP TRÌNH TRUYỀN THỐNG Lập trình truyền thống trải qua hai giai đoạn: IT  Giai đoạn sơ khai, khái niệm lập trình đời, lập trình tuyến tính  Giai đoạn tiếp theo, lập trình hướng cấu trúc 1.1.1 Lập trình tuyến tính Đặc trưng P T Đặc trưng lập trình tuyến tính tư theo lối Chương trình thực từ đầu đến cuối, lệnh lệnh kết thúc chương trình Lập trình tuyến tính có hai đặc trưng:  Đơn giản: chương trình tiến hành đơn giản theo lối tuần tự, khơng phức tạp  Đơn luồng: có luồng công việc nhất, công việc thực luồng Tính chất  Ưu điểm: Do tính đơn giản, lập trình tuyến tính có ưu điểm chương trình đơn giản, dễ hiểu Lập trình tuyến tính ứng dụng cho chương trình đơn giản  Nhược điểm: Với ứng dụng phức tạp, người ta khơng thể dùng lập trình tuyến tính để giải Ngày nay, lập trình tuyến tính tồn phạm vi modul nhỏ phương pháp lập trình khác Ví dụ chương trình lập trình cấu trúc, lệnh thực theo từ đầu đến cuối chương trình CuuDuongThanCong.com https://fb.com/tailieudientucntt 1.1.2 Lập trình cấu trúc Trong lập trình hướng cấu trúc, chương trình chia nhỏ thành chương trình chương trình thực cơng việc xác định Chương trình gọi đến chương trình theo giải thuật, cấu trúc xác định chương trình Các ngơn ngữ lập trình cấu trúc phổ biến Pascal, C C++ Riêng C++ ngồi việc có đặc trưng lập trình cấu trúc kế thừa từ C, cịn có đặc trưng lập trình hướng đối tượng Cho nên C++ cịn gọi ngơn ngữ lập trình nửa cấu trúc, nửa hướng đối tượng Đặc trưng Đặc trưng lập trình cấu trúc thể mối quan hệ: Chương trình = Cấu trúc liệu + Giải thuật Trong đó:  Cấu trúc liệu cách tổ chức liệu, cách mơ tả tốn dạng ngơn ngữ lập trình IT  Giải thuật quy trình để thực cơng việc xác định Trong chương trình, giải thuật có quan hệ phụ thuộc vào cấu trúc liệu:  Một cấu trúc liệu phù hợp với số hạn chế giải thuật T  Nếu thay đổi cấu trúc liệu phải thay đổi giải thuật cho phù hợp Tính chất P  Một giải thuật thường phải kèm với cấu trúc liệu định  Mỗi chương trình gọi thực nhiều lần chương trình  Các chương trình gọi đến để thực theo thứ tự bất kì, tuỳ thuộc vào giải thuật chương trình mà khơng phụ thuộc vào thứ tự khai báo chương trình  Các ngơn ngữ lập trình cấu trúc cung cấp số cấu trúc lệnh điều khiển chương trình Ưu điểm  Chương trình sáng sủa, dễ hiểu, dễ theo dõi  Tư giải thuật rõ ràng Nhược điểm  Lập trình cấu trúc khơng hỗ trợ việc sử dụng lại mã nguồn: Giải thuật phụ thuộc chặt chẽ vào cấu trúc liệu, đó, thay đổi cấu trúc liệu, phải thay đổi giải thuật, nghĩa phải viết lại chương trình CuuDuongThanCong.com https://fb.com/tailieudientucntt  Không phù hợp với phần mềm lớn: tư cấu trúc với giải thuật phù hợp với toán nhỏ, nằm phạm vi modul chương trình Với dự án phần mềm lớn, lập trình cấu trúc tỏ khơng hiệu việc giải mối quan hệ vĩ mô modul phần mềm Vấn đề Vấn đề lập trình cấu trúc cách để phân chia chương trình thành chương trình cho phù hợp với yêu cầu, chức mục đích tốn Thơng thường, để phân rã tốn lập trình cấu trúc, người ta sử dụng phương pháp thiết kế xuống (top-down) Phương pháp thiết kế xuống (top-down) Phương pháp thiết kế top-down tiếp cận toán theo hướng từ xuống dưới, từ tổng quan đến chi tiết Theo đó, toán chia thành toán nhỏ Mỗi toán lại chia nhỏ tiếp, có thể, thành tốn nhỏ IT Q trình cịn gọi q trình làm mịn dần Quá trình làm mịn dần dừng lại tốn khơng cần chia nhỏ thêm Nghĩa toán giải chương trình với giải thuật đơn giản T Ví dụ, sử dụng phương pháp top-down để giải toán xây nhà Khi đó, ta phân rã toán theo bước sau:  Ở mức thứ nhất, chia toán xây nhà thành tốn nhỏ như: làm móng, đổ cột, đổ trần, xây tường, lợp mái P  Ở mức thứ hai, phân rã công việc mức thứ nhất: việc làm móng nhà phân rã tiếp thành cơng việc: đào móng, gia cố nền, làm khung sắt, đổ bê tông Công việc đổ cột phần rã thành …  Ở mức thứ ba, phân rã công việc mức thứ hai: việc đào móng phân chia tiếp thành cơng việc: đo đạc, cắm mốc, dây, đào kiểm tra móng Việc gia cố phân rã thành … Q trình phân rã dừng mức này, cơng việc thu là: đo đạc, cắm mốc, dây, đào… thực ngay, không cần chia nhỏ thêm Lưu ý:  Cùng sử dụng phương pháp top-down với tốn, cho nhiều kết khác Nguyên nhân khác tiêu chí để phân rã tốn thành tốn Ví dụ, áp dụng phương pháp top-down để giải toán xây nhà, sử dụng cách khác để phân chia toán, ta thu kết khác biệt so với phương pháp ban đầu: CuuDuongThanCong.com https://fb.com/tailieudientucntt  Ở mức thứ nhất, chia toán xây nhà thành toán nhỏ như: làm phần gỗ, làm phần sắt, làm phần bê tông làm phần gạch  Ở mức thứ hai, phân rã công việc mức thứ nhất: việc làm gỗ chia thành công việc như: xẻ gỗ, gia công gỗ, tạo khung, lắp vào nhà Việc làm sắt chia nhỏ thành… Rõ ràng, với cách làm mịn này, ta thu kết khác hẳn với cách thức thực phần 1.2 PHƯƠNG PHÁP TIẾP CẬN HƯỚNG ĐỐI TƯỢNG 1.2.1 Phương pháp lập trình hướng đối tượng Xuất phát từ hai hạn chế phương pháp lập trình cấu trúc:  Khơng quản lí thay đổi liệu có nhiều chương trình thay đổi biến chung Vấn đề đặc biệt nghiêm trọng ứng dụng ngày lớn, người ta khơng thể kiểm sốt truy nhập đến biến liệu chung lại mã chương trình từ đầu IT  Khơng tiết kiệm tài nguyên người: Giải thuật gắn liền với cấu trúc liệu, thay đổi cấu trúc liệu, phải thay đổi giải thuật, đó, phải viết Để khắc phục hai hạn chế giải toán lớn, người ta xây dựng T phương pháp tiếp cận mới, phương pháp lập trình hướng đối tượng, với hai mục đích chính:  Đóng gói liệu để hạn chế truy nhập tự vào liệu, khơng quản lí P  Cho phép sử dụng lại mã nguồn, hạn chế việc phải viết lại mã từ đầu cho chương trình Việc đóng gói liệu thực theo phương pháp trừu tượng hoá đối tượng thành lớp từ thấp lên cao sau:  Thu thập thuộc tính đối tượng, gắn thuộc tính vào đối tượng tương ứng  Nhóm đối tượng có thuộc tính tương tự thành nhóm, loại bỏ bớt thuộc tính cá biệt, giữ lại thuộc tính chung Đây gọi q trình trừu tượng hố đối tượng thành lớp  Đóng gói liệu đối tượng vào lớp tương ứng Mỗi thuộc tính đối tượng trở thành thuộc tính lớp tương ứng  Việc truy nhập liệu thực thông qua phương thức trang bị cho lớp Không truy nhập tự trực tiếp đến liệu CuuDuongThanCong.com https://fb.com/tailieudientucntt  Khi có thay đổi liệu đối tượng, ta cần thay đổi phương thức truy nhập thuộc tính lớp, mà khơng cần phải thay đổi mã nguồn chương trình sử dụng lớp tương ứng Việc cho phép sử dụng lại mã nguồn thực thông qua chế kế thừa lập trình hướng đối tượng Theo đó:  Các lớp kế thừa để tận dụng thuộc tính, phương thức  Trong lớp dẫn xuất (lớp kế thừa) sử dụng lại phương thức lớp sở (lớp bị lớp khác kế thừa) mà không cần thiết phải cài đặt lại mã nguồn  Ngay lớp dẫn xuất định nghĩa lại phương thức cho mình, lớp sở không bị ảnh hưởng sửa lại đoạn mã nguồn Đặc trưng IT Ngơn ngữ lập trình hướng đối tượng phổ biến Java C++ Tuy nhiên, C++ có đặc trưng lập trình hướng đối tượng khơng phải ngơn ngữ lập trình hướng đối tượng Java thật ngơn ngữ lập trình hướng đối tượng Lập trình hướng đối tượng có hai đặc trưng bản: T  Đóng gói liệu: liệu ln tổ chức thành thuộc tính lớp đối tượng Việc truy nhập đến liệu phải thông qua phương thức đối tượng lớp P  Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn thể thông qua chế kế thừa Cơ chế cho phép lớp đối tượng kế thừa từ lớp đối tượng khác Khi đó, lớp kế thừa, sử dụng phương thức (mã nguồn) lớp bị kế thừa, mà không cần phải định nghĩa lại Ưu điểm Lập trình hướng đối tượng có số ưu điểm bật:  Khơng cịn nguy liệu bị thay đổi tự chương trình Vì liệu đóng gói vào đối tượng Nếu muốn truy nhập vào liệu phải thông qua phương thức cho phép đối tượng  Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi đổi mã nguồn đối tượng khác, mà cần thay đổi số hàm thành phần đối tượng bị thay đổi Điều hạn chế ảnh hưởng xấu việc thay đổi liệu đến đối tượng khác chương trình  Có thể sử dụng lại mã nguồn, tiết kiệm tài nguyên Vì nguyên tắc kế thừa cho phép lớp kế thừa sử dụng phương thức kế thừa từ lớp khác phương thức nó, mà không cần thiết phải định nghĩa lại CuuDuongThanCong.com https://fb.com/tailieudientucntt  Phù hợp với dự án phần mềm lớn, phức tạp 1.2.2 Phương pháp phân tích thiết kế hướng đối tượng Một vấn đề đặt cho phương pháp hướng đối tượng từ toán ban đầu, để thu tập đối tượng, với chức phối hợp với nhau, đáp ứng yêu cầu tốn đặt ra? Phương pháp phân tích thiết kế hướng đối tượng đời nhằm trả lời cho câu hỏi Mục đích xây dựng tập lớp đối tượng tương ứng với toán, phương pháp tiến hành theo hai pha chính: Pha phân tích: Chuyển đổi u cầu tốn từ ngơn ngữ tự nhiên sang ngơn ngữ mơ hình Pha thiết kế: Chuyển đổi đặc tả tốn dạng ngơn ngữ mơ hình sang mơ hình cụ thể cài đặt Hai pha phân tích thiết kế bao gồm nhiều bước khác nhau:  Mô tả tốn  Trích chọn đối tượng  Mơ hình hố lớp đối tượng  Thiết kế chi tiết Bước 1: Mơ tả tốn T  Thiết kế tổng quan IT  Đặc tả yêu cầu P Bài toán ban đầu phát biểu dạng ngôn ngữ tự nhiên, bao gồm:  Mục đích, chức chung  Các yêu cầu thông tin liệu  Các yêu cầu chức thực Bước 2: Đặc tả u cầu Các u cầu hình thức hố lên mức cao cách sử dụng ngôn ngữ kiểu kịch (scenario) để mô tả Trong kịch bản, chức năng, hoạt động mô tả kịch bản, bao gồm:  Các tác nhân tham gia vào kịch  Vai trò tác nhân kịch  Thứ tự hành động mà tác nhân thực hiện: thực hiện, tác động vào tác nhân nào, thông tin trao đổi Quá trình tiến hành với tất chức yêu cầu hệ thống 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt } 4.3 JSON Binding Support ASP.NET MVC bao gồm ràng buộc hỗ trợ JSON cho phép phương thức hành động để nhận liệu JSON-encoded modelbind tham số phương thức hành động Khả hữu ích tình liên quan đến client template data binding MVC cho phép bạn dễ dàng kết nối client template với phương thức hành độngtrên máy chủ gởi nhận nhận liệu JSON Model Validation Imporvements 5.1 Thuộc tính siêu liệu “DataAnnotations” IT ASP.NET MVC hỗ trợ thuộc tính siêu liệu DataAnnotations DisplayAttribute 5.2 Lớp “ValidationAttribue” P T Lớp ValidationAttribute cải tiến NET Framerwork để hỗ trợ tải IsValid cung cấp thêm thông tin bối cảnh xác nhận tại, chẳng hạn đối tượng xác nhận Điều cho phép kịch phong phú hơn, nơ bạn xác nhận giá trị dựa thuộc tính khác model Ví dụ, thuộc tính CompareAttribute cho phép bạn so sánh giá trị thuộc tính model Trong ví dụ đây, thuộc tính ComparePassword phải phù hợp với trường Password để hợp lệ: public class User { [Required] public string Password { get; set; } [Required, Compare("Password")] public string ComparePassword { get; set; } } 5.3 Validation Interfaces - Giao diện IValidatableObject cho phép bạn thực cấp model xác nhận, cho phép bạn cung cấp thông điệp xác nhận lỗi cụ 272 CuuDuongThanCong.com https://fb.com/tailieudientucntt thể trạng thái model tổng thể, hay giữ thuộc tính model MVC lấy lỗi từ giao diện IValidatableObject ràng buộc mơ hình, từ động gắn cờ hay tô sáng trường bị ảnh hưởng phậm vi view cách sử dụng cơng cụ hỗ trợ hình thức HTML - Giao diện IClientValidatable cho phép ASP.NET MVC khám phá thời gian chạy dù validator hỗ trợ cho việc xác thực client Giao diện thiết kế để tích hợp với hàng loạt validation frameworks Dependency Injection Imporvements - ASP.NET MVC cung cấp hỗ trợ tốt cho việc áp dụng Dependency Injection (DI) tích hợp với Dependency Injection hay Inversion of Control (IOC) containers Các hỗ trợ cho DI thêm vào: IT oControllers (registering and injecting controller factories, injecting controllers) oViews (registering and injecting view engines, injecting dependencies into view pages) T oAction filters (locating and injecting filters) oModel binders (registering and injecting) P oModel validation providers (registering and injecting) oModel metadata providers (registering and injecting) oValue providers (registering and injecting) - MVC hỗ trợ thư viện Common Service Locator DI container có hỗ trợ thư viện IServiceLocator Nó hỗ trợ giao diện IDpendencyResolver làm cho dễ dàng để tích hợp với DI frameworks 3.4 MVC Phần mơ tả tính giới thiệu MVC ASP.NET Cải tiến để mặc mẫu dự án (Enhancements to Default Project Templates) o Các mẫu sử dụng để tạo ASP.NET MVC dự án cập nhật để tạo trang web trông đại hơn: 273 CuuDuongThanCong.com https://fb.com/tailieudientucntt o Ngoài để cải thiện thẩm mỹ, cải thiện chức mẫu Các mẫu sử kỹ thuật dựng hình thích ứng nhìn tốt trình duyệt máy tính để bàn trình duyệt di động mà khơng cần tùy chỉnh o Để xem render adaptive hoạt động, bạn sử dụng giả lập di động cần cố gắng thay đổi kích thước cửa sổ trình duyệt máy tính để bàn để nhỏ Khi cửa sổ trình duyệt đủ nhỏ, bố trí trang thay đổi o Một phát triển dự án mẫu mặc việc sử dụng JavaScript để cung cấp giao diện người dùng phong phú Đăng nhập Đăng ký liên kết sử dụng template ví dụ cách sử dụng hộp thoại giao diện jQuery để trình bày hình đăng nhập phong phú IT Mẫu dự án di động (Mobile Project Template) o Nếu bạn bắt đầu dự án muốn tạo trang web đặc biệt cho trình duyệt di động máy tính bảng, bạn sử dụng mẫu dự T án ứng dụng di động Điều dựa jQuery Mobile, thư viện mã P nguồn mở để xây dựng tối ưu hoá giao diện cảm ứng cho người dùng o Mẫu có chứa cấu trúc ứng dụng tương tự mẫu ứng dụng Internet (và mã điều khiển giống nhau), mang phong cách sử jQuery Mobile nhìn tốt cư xử tốt thiết bị di động dựa cảm 274 CuuDuongThanCong.com https://fb.com/tailieudientucntt ứng Để tìm hiểu thêm làm để cấu trúc phong cách giao diện người dùng di động, xem trang web dự án jQuery Mobile o Nếu bạn có trang web máy theo định hướng mà bạn muốn thêm vào xem để tối ưu hoá điện thoại di động, bạn muốn tạo trang web phục quan khác theo kiểu trình máy tính để bàn di động, bạn sử dụng tính hiển thị chế độ (Xem phần tiếp theo.) Chế độ hiển thị (Display Modes) o Tính Display Modes cho phép xem ứng dụng chọn tùy thuộc vào trình duyệt đưa u cầu Ví dụ, trình duyệt máy tính để bàn yêu cầu trang ‘Home page’, ứng dụng sử dụng Views\Home\Index.cshtml template Nếu trình duyệt di động yêu trang chủ, ứng dụng trả lại Views\Home\Index.mobile.cshtml IT template o Layouts partials ghi đè cho trình duyệt cụ thể o Nếu bạn muốn tạo Views cụ thể, bố trí, phần cho thiết bị khác, bạn đăng ký thể DefaultDisplayMode để xác định tên để T tìm kiếm yêu cầu đáp ứng điều kiện đặc thù Ví dụ, bạn thêm đoạn mã sau vào phương thức Application_Start file Global.asax đăng ký P chuỗi “iPhone” chế độ hiển thị áp dụng trình duyệt iPhone Apple tạo yêu cầu : DisplayModes.Modes.Insert(0, new DefaultDisplayMode("iPhone") { ContextCondition = (context => context.Request.UserAgent.IndexOf ("iPhone", StringComparison.OrdinalIgnoreCase) >= 0) }); Sau chạy mã này, trình duyệt iPhone Apple tạo yêu cầu, ứng dụng bạn sử dụng Views \ Shared \ _Layout.iPhone.cshtml layout (nếu tồn tại) 4.jQuery Mobile, the View Switcher, and Browser Overriding 275 CuuDuongThanCong.com https://fb.com/tailieudientucntt jQuery Mobile thư viện mã nguồn mở để xây dựng giao diện người dùng web cảm ứng tối ưu hóa - Một thành phần view-switcher, bao gồm Views / Shared / _ViewSwitcher.cshtml partial view ViewSwitcherController.cs controller Sau bạn cài gói phần mềm, chạy ứng dụng bạn cách sử dụng trình duyệt di động (hoặc tương đương, Firefox User Agent Switcher add-on) Bạn thấy trang trông khác nhau, jQuery Mobile xử lý layout phong cách Để tận dụng lợi này, bạn làm sau: - Tạo điện thoại di động cụ thể view ghi đè mô tả chế độ hiển thị trước (ví dụ, tạo Views \ Home \ Index.mobile.cshtml để ghi đè lên Views \ Home \ Index.cshtml dành cho trình duyệt điện thoại di động) - Đọc tài liệu jQuery Mobile để tìm hiểu thêm làm để thêm yếu tố giao diện người dùng cảm ứng tối ưu hóa chế độ xem di động IT Một quy ước cho trang web tối ưu hoá điện thoại di động thêm liên kết văn giống chế độ xem Desktop trang web toàn cho phép người chuyển sang phiên máy trang Các gói phần mềm jQuery.Mobile.MVC T bao mẫu view-switcher thành phần cho mục đích Nó sử dụng Views mặc định \ Shared \ _Layout.Mobile.cshtml, trơng trang trả lại: P Nếu khách truy cập nhấp vào liên kết, họ chuyển sang phiên máy tính để bàn trang.Bởi layout máy tính để bàn bạn không bao gồm công tắc xem cách mặc định , khách viếng thăm khơng có cách để có chế độ di động Để kích hoạt tính này, thêm tham chiếu sau tới _ViewSwitcher tới layout máy tính bạn, cần bên phần tử : @Html.Partial("_ViewSwitcher") - switcher view sử dụng tính gọi Browser Overriding Tính cho phép yêu cầu xử lý ứng dụng bạn thể họ đến từ trình duyệt khác (đại lý người sử dụng) so với họ thực - Browser Overriding tính cốt lõi ASP.NET MVC có sẵn bạn khơng cài đặt gói jQuery.Mobile.MVC Tuy nhiên, ảnh hưởng đến View bố cục, xem phần lựa chọn – khơng ảnh hưởng đến tính ASP.NET khác phụ thuộc vào đối tượng Request.Browser 276 CuuDuongThanCong.com https://fb.com/tailieudientucntt Theo mặc định, ghi đè lên người sử dụng đại lý lưu trữ cách sử dụng cookie Nếu bạn muốn để lưu trữ ghi đè lên nơi khác (ví dụ, sở liệu), bạn thay nhà cung cấp mặc định (BrowserOverrideStores.Current) 5.Recipes for Code Generation in Visual Studio (công thức cho hệ Mã Visual Studio) o Bí tính cho phép Visual Studio để tạo giải pháp cụ thể mã dựa bao bì mà bạn cài đặt cách sử dụng NuGet Khung Bí làm cho dễ dàng cho nhà phát triển viết mã hệ bổ sung, bạn sử dụng để thay xây dựng máy phát mã Add Area , Add Controller, Add View Bởi cơng thức triển khai gói NuGet, họ dễ dàng kiểm tra vào kiểm soát nguồn chia sẻ với tất nhà phát triển dự án tự động Họ có sẵn sở cho IT giải pháp o Hỗ trợ cho công việc điều khiển khơng đồng o Bây bạn viết phương pháp hành động không đồng phương P công tác T pháp mà trả đối tượng loại công tác Ví dụ, bạn sử dụng Visual C # (hoặc cách sử dụng CTP Async), bạn tạo phương thức hành động không đồng mà trông sau: public async Task Index(string city) { var newsService = new NewsService(); var sportsService = new SportsService(); return View("Common", new PortalViewModel { NewsHeadlines = await newsService.GetHeadlinesAsync(), SportsScores = await sportsService.GetScoresAsync() }); } 277 CuuDuongThanCong.com https://fb.com/tailieudientucntt Trong phương pháp hành động trước đó, gọi đến newsService.GetHeadlinesAsync sportsService.GetScoresAsync gọi không đồng không chặn thread từ thread pool Phương pháp hành động không đồng trả lại trường công việc hỗ trợ timeouts Để thực hủy phương thức hành động bạn, thêm tham số CancellationToken loại chữ ký phương thức hành động Ví dụ sau cho thấy phương thức hành động khơng đồng mà có thời gian chờ 2500 mili giây hiển thị nhìn TimedOut cho khách hàng thời gian chờ xảy [AsyncTimeout(2500)] [HandleError(ExceptionType = typeof(TaskCanceledException), View = "TimedOut")] public async Task Index(string city, CancellationToken cancellationToken) { var newsService = new NewsService(); return View("Common", new PortalViewModel { IT var sportsService = new SportsService(); T NewsHeadlines = await newsService.GetHeadlinesAsync(cancellationToken), }); KẾT LUẬN P SportsScores = await sportsService.GetScoresAsync(cancellationToken) Ý nghĩa mơ hình tách biệt phần ánh xạ, lưu trữ xử lý liệu (model) tách biệt hoàn toàn với thành phần trình bày giao diện kết 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).Việc tách cho phép người lập trình tách biệt cơng việc q trình xây dựng chức cho ứng dụng trình xây dựng giao diện cho người dùng Bên cạnh đó, MVC cho phép việc thay đổi thành phần liệu (model) không ảnh hưởng nhiều đến giao diện người dùng mơ hình đưa Model để không cho người dùng thao tác trực tiếp vào liệu vật lý (Cơ sở liệu tập tin) mà phải thông qua Model, cho dù liệu vật lý thay đổi cấu trúc cấu trúc Model cho việc truy cập, xử lý, lưu trữ liệu khơng bị ảnh hưởng Nhìn theo khái niệm thành phần giao tiếp Model tên hàm – tham số truyền (interface) thay đổi, nội dung thay đổi cách thức cài đặt bên hàm Nhưng nội dung người sử dụng chức giao diện khơng quan tâm đa số họ quan tâm 278 CuuDuongThanCong.com https://fb.com/tailieudientucntt interface gì, giá trị nhập kết xuất Do vậy, tính linh hoạt uyển chuyển mơ hình MVC Ngồi ra, việc tách biệt rời rạc Model View theo phân tích thể tính ưu việt Tuy nhiên, ứng dụng có nhiều Model nhiều View, vậy, mơ hình cần có thành phần lựa chọn kết nối thành phần lại với theo cách hiệu Controller đối tượng đưa để đó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 xử lý model chuyển đến controller để controller xác định view kết xuất để đổ kết xử lý hiển thị cho người dùng Nhiều view đồng thời chạy model Nhiều view khác hoạt động thời điểm view mô tả đồng thời độc lập thong tin giống từ model Điều áp dụng nhiều GUI MVC web MVC IT Tuy nhiên MVC có điểm trừ như: o Gia tăng phức tạp Sự kết nối chặt chẽ view controller model thay đổi giao diện model đòi hỏi thay đổi song song view T địi hỏi thay đổi thêm controller Sự thay đổi code trở nên khó khăn hơn.Cơ chế truyền thay đổi khơng hiệu P model thay đổi thường cun địi hỏi nhiều thơng báo thay đổi, vấn đề chung passive model sử dụng o Sự kết nối chặt chẽ view controller Sự tách biệt rõ ràng khó, đơi khơng thể Mơ hình MVC sử dụng rộng rãi giới World Wide Web Hầu tất trang web giới sử dụng mơ hình để hoạt động Web văn HTML Việc xử lí để tạo văn HTML ngôn ngữ khác đảm nhiệm (PHP, ASP.NET, JAVA) Để phân biệt thành phần MVC WEB ta hiểu sau: o View: Là Browser hay trình duyệt web người dùng o Controller: văn HTML xuất browser o Model: ngơn ngữ phía server bên (PHP, ASP, JAVA) Database Ngồi lợi ích mà MVC mang lại thể WEB động: o Người dùng thay đổi trình duyệt mà vào web (thay đổi view) 279 CuuDuongThanCong.com https://fb.com/tailieudientucntt o Có thể thay đổi ngôn ngữ Database để xuất view nội dung trước thay đổi P T IT o Thay đổi giao diện web (thay đổi controller) 280 CuuDuongThanCong.com https://fb.com/tailieudientucntt MỤC LỤC GIỚI THIỆU PHẦN NHỮNG KHÁI NIỆM CƠ BẢN CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG CHƯƠNG TỔNG QUAN VỀ CÁCH TIẾP CẬN HƯỚNG ĐỐI TƯỢNG 1.1 PHƯƠNG PHÁP TIẾP CẬN CỦA LẬP TRÌNH TRUYỀN THỐNG 1.1.1 Lập trình tuyến tính 1.1.2 Lập trình cấu trúc 1.2 PHƯƠNG PHÁP TIẾP CẬN HƯỚNG ĐỐI TƯỢNG 1.2.1 Phương pháp lập trình hướng đối tượng IT 1.2.2 Phương pháp phân tích thiết kế hướng đối tượng 10 1.3 SO SÁNH HAI CÁCH TIẾP CẬN .12 1.4 XU HƯỚNG PHÁT TRIỂN CỦA LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 13 T TỔNG KẾT CHƯƠNG 15 CHƯƠNG 16 P NHỮNG KHÁI NIỆM CƠ BẢN CỦA 16 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 16 2.1 CÁC KHÁI NIỆM CƠ BẢN .16 2.1.1 Đối tượng 16 2.1.2 Lớp đối tượng 17 2.1.3 Trừu tượng hoá đối tượng theo chức 19 2.1.4 Trừu tượng hoá đối tượng theo liệu 20 2.1.5 Khái niệm kế thừa 21 2.1.6 Khái niệm đóng gói .23 2.1.7 Khái niệm đa hình 24 2.2 SO SÁNH LỚP VÀ CẤU TRÚC 25 2.3 THÀNH PHẦN PRIVATE VÀ PUBLIC CỦA LỚP 26 2.4 MỘT SỐ NGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 27 2.4.1 C++ 27 281 CuuDuongThanCong.com https://fb.com/tailieudientucntt 2.4.2 ASP.NET C#.NET 28 2.4.3 Java 28 TỔNG KẾT CHƯƠNG 29 CÂU HỎI VÀ BÀI TẬP CHƯƠNG 30 PHẦN 31 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI JAVA 31 CHƯƠNG 32 GIỚI THIỆU VỀ JAVA 32 3.1 LỊCH SỬ PHÁT TRIỂN CỦA JAVA 32 3.1.1 Java 32 3.1.2 Đặc trưng ngôn ngữ Java 32 3.1.3 Cài đặt Java 35 3.2 KIẾN TRÚC CHƯƠNG TRÌNH XÂY DỰNG TRÊN JAVA 36 3.2.1 Kiến trúc chương trình Java 36 IT 3.2.2 Chương trình Java 39 3.2.3 Phân tích chương trình 40 3.3 CÁC KIỂU DỮ LIỆU VÀ TOÁN TỬ CƠ BẢN TRÊN JAVA 42 T 3.3.1 Khai báo biến 42 3.3.2 Kiểu liệu 42 P 3.3.3 Các toán tử 44 3.4 CÁC CẤU TRÚC LỆNH TRÊN JAVA 48 3.4.1 Câu lệnh if-else .48 3.4.2 Câu lệnh switch-case .49 3.4.3 Vòng lặp While .51 3.4.4 Vòng lặp do-while 52 3.4.5 Vòng lặp for 53 3.5 CASE STUDY I 54 TỔNG KẾT CHƯƠNG 56 CÂU HỎI VÀ BÀI TẬP CHƯƠNG 57 CHƯƠNG 60 KẾ THỪA VÀ ĐA HÌNH TRÊN JAVA 60 4.1 KẾ THỪA ĐƠN 60 282 CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.1.1 Lớp 60 4.1.2 Sự kế thừa 65 4.2 KẾ THỪA BỘI 67 4.2.1 Giao tiếp 68 4.2.2 Sử dụng giao tiếp 69 4.3 LỚP TRỪU TƯỢNG 71 4.3.1 Khai báo 71 4.3.2 Sử dụng lớp trừu tượng 73 4.4 ĐA HÌNH .74 4.4.1 Nạp chồng .75 4.4.2 Đa hình 75 4.5 CASE STUDY II 77 4.5.1 Lớp Human 77 4.5.2 Lớp Person 78 IT 4.5.3 Lớp Employee .79 4.5.4 Chương trình demo .81 T TỔNG KẾT CHƯƠNG 82 CÂU HỎI VÀ BÀI TẬP CHƯƠNG 83 P CHƯƠNG 88 BIỂU DIỄN VÀ CÀI ĐẶT 88 CÁC CẤU TRÚC DỮ LIỆU TRỪU TƯỢNG TRÊN JAVA 88 5.1 PHƯƠNG PHÁP DUYỆT VÀ ĐỆ QUI .88 5.1.1 Các phương pháp duyệt .88 5.1.2 Phương pháp đệ qui .89 5.2 PHƯƠNG PHÁP SẮP XẾP VÀ TÌM KIẾM 89 5.2.1 Các phương pháp xếp .89 5.2.2 Các phương pháp tìm kiếm 91 5.3 NGĂN XẾP VÀ HÀNG ĐỢI 93 5.3.1 Ngăn xếp .93 5.3.2 Hàng đợi 96 5.4 DANH SÁCH LIÊN KẾT 97 5.4.1 Danh sách liên kết đơn 97 283 CuuDuongThanCong.com https://fb.com/tailieudientucntt 5.4.2 Danh sách liên kết kép 103 5.5 CÂY NHỊ PHÂN .109 5.6 ĐỒ THỊ 115 5.6.1 Biểu diễn đồ thị 115 5.6.2 Cài đặt đồ thị khơng có trọng số 116 5.6.3 Cài đặt đồ thị có trọng số 122 5.7 CASE STUDY III 127 TỔNG KẾT CHƯƠNG 133 CÂU HỎI VÀ BÀI TẬP CHƯƠNG 134 CHƯƠNG 135 LẬP TRÌNH GIAO DIỆN TRÊN JAVA 135 6.1 GIAO DIỆN VỚI CÁC ĐỐI TƯỢNG CƠ BẢN 135 6.1.1 Các đối tượng container 135 6.1.2 Các đối tượng component .138 IT 6.1.3 Các kiện đối tượng .142 6.2 GIAO DIỆN VỚI CÁC ĐỐI TƯỢNG MULTIMEDIA 146 6.2.1 Ô đánh dấu nút chọn .146 T 6.2.2 Lựa chọn 148 P 6.2.3 Danh sách 150 6.2.4 Trình đơn .153 6.3 CÁC KỸ THUẬT TẠO TABLES 156 6.3.1 Trình bày Flow Layout .156 6.3.2 Trình bày Grid Layout 158 6.3.3 Trình bày Border Layout .159 6.3.4 Trình bày GridBag Layout 160 6.3.5 Trình bày Null Layout 163 6.4 HTML & APPLET 164 6.4.1 Cấu trúc Applet .164 6.4.2 Sử dụng applet .166 6.4.3 Truyền tham số cho Applet 169 6.5 GIỚI THIỆU VỀ SWING 170 6.5.1 Mở rộng đối tượng component .171 284 CuuDuongThanCong.com https://fb.com/tailieudientucntt 6.5.2 Mở rộng đối tượng container 172 6.6 CASE STUDY IV 175 TỔNG KẾT CHƯƠNG 182 CÂU HỎI VÀ BÀI TẬP CHƯƠNG 183 CHƯƠNG 184 THƯ VIỆN CÁC COLLECTION TRONG JAVA VÀ ÁP DỤNG 184 7.1 Các thành phần Collection 185 7.2 Giới thiệu Collection: 187 7.3 Giới thiệu List cách sử dụng 193 7.4 Giới thiệu Set Interface: .211 7.5 Giới thiệu Map 221 HƯỚNG DẪN TRẢ LỜI CÂU HỎI VÀ BÀI TẬP 231 Chương 231 Chương 231 IT Chương 232 Chương 233 Chương 236 T Chương 237 P TÀI LIỆU THAM KHẢO .242 PHỤ LỤC: GIỚI THIỆU MƠ HÌNH MVC VÀ ÁP DỤNG 243 TỔNG QUAN VỀ MVC .244 1.1.LỊCH SỬ PHÁT TRIỂN MƠ HÌNH MVC 244 1.2 KIẾN TRÚC TRONG MƠ HÌNH MVC 244 1.3.CÁC MỐI QUAN HÊ TRONG MVC 246 1.4 MVC HOẠT ĐỘNG NHƯ THẾ NÀO? .248 1.5.ƯU NHƯỢC ĐIỂM CỦA MƠ HÌNH MVC 249 SO SÁNH MVC VỚI MƠ HÌNH LẬP TRÌNH KHÁC .250 2.1 MVC vs LAYER 250 2.2.MVC vs MOVE .256 CÁC MƠ HÌNH MVC 259 3.1.MVC 1(Page-Centric Architecture) .259 3.2 MVC 2(Servlet-Centric Architecture) 260 285 CuuDuongThanCong.com https://fb.com/tailieudientucntt 3.3 MVC 268 3.4 MVC 273 KẾT LUẬN 278 P T IT MỤC LỤC 281 286 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... Chương 6: Lập trình giao di? ??n Java Trình bày kỹ thuật lập trình giao di? ??n Java: Lập trình với giao di? ??n thư viện AWT, lập trình giao di? ??n với Applet HTML, lập trình giao di? ??n nâng cao với thư viện... lệnh sau else thực Cú pháp: if (conditon) { action1 statements; } else { action2 statements; 48 CuuDuongThanCong.com https://fb.com/tailieudientucntt } Condition: Biểu thức boolean toán tử so... False Cú pháp: while(condition) { action statements; IT } condition: có giá trị bool; vịng lặp tiếp tục cho điều kiện có giá trị True action statement: Khối lệnh thực condition nhận giá trị True

Ngày đăng: 05/12/2022, 10:01

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

TÀI LIỆU LIÊN QUAN

w