Phân Tích Thiết Kế Hướng Mẫu Ứng Dụng Quản Lý Học Tập tại Cao Đẳng Cộng Đồng

Phân tích thiết kế hướng mẫu cho bài toán quản lý kết quả học tập tại trường cao đẳng cộng đồng. Tìm hiểu ứng dụng và lợi ích của phương pháp này.

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sỹ

2012

82
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

MỤC LỤC

BẢNG DANH MỤC CÁC CHỮ VIẾT TẮT

DANH MỤC CÁC HÌNH VẼ

MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN VỀ PHÂN TÍCH THIẾT KẾ HƯỚNG MẪU

1.1. Khái niệm mẫu thiết kế, các đặc trƣng, phân loại mẫu thiết kế

1.2. Các đặc trƣng

1.3. Quy trình phân tích thiết kế hƣớng mẫu

1.4. Đặc tả một số các mẫu thiết kế cần dùng cho bài toán

1.4.1. Mẫu chế tạo (Factory Pattern)

1.4.2. Mẫu Ủy nhiệm (Proxy Pattern)

1.4.3. Sơ đồ mối liên kết các mẫu thiết kế

2. BÀI TOÁN QUẢN LÝ KẾT QUẢ HỌC TẬP VÀ GIẢI PHÁP

2.1. Khảo sát thu thập dữ liệu về bài toán quản lý kết quả học tập hiện nay ở trƣờng Cao đẳng Cộng đồng Hải phòng và một số cơ sở Đào tạo khác

2.2. Hồ sơ Học viên

2.3. Kế hoạch đào tạo

2.4. Mô tả và đặc tả yêu cầu của bài toán đặt ra

2.5. Thực trạng của việc quản lý kết quả học tập hiện nay ở trƣờng Cao đẳng Cộng đồng Hải phòng và những vấn đề đặt ra

2.6. Giải pháp tổng thể về công nghệ thông tin để giải quyết bài toán đặt ra

3. Chƣơng 3. PHÂN TÍCH THIẾT KẾ BÀI TOÁN HƢỚNG MẪU

3.1. Đặc tả bài toán theo hƣớng đối tƣợng

3.2. Các chức năng của hệ thống

3.3. Mô hình khái niệm mức nghiệp vụ

3.4. Xác định các tác nhân, các ca sử dụng và mô tả các ca sử dụng

3.5. Mô hình ca sử dụng

3.6. Mô hình chi tiết ca sử dụng

3.7. Lựa chọn các mẫu thích hợp cho các đặc tả yêu cầu tƣơng ứng

3.8. Mẫu Ủy nhiệm (Proxy)

3.9. Áp dụng mẫu Ủy nhiệm (Proxy)

3.10. Áp dụng mẫu tạo (Factory)

3.11. Tích hợp để đƣợc thiết kế tổng thể

3.11.1. Ca sử dụng Cập nhật môn học

3.11.2. Ca sử dụng Chƣơng trình đào tạo

3.11.3. Ca sử dụng Nhập điểm

3.12. Bổ sung và hoàn thiện thiết kế của hệ thống

4. XÂY DỰNG CHƢƠNG TRÌNH VÀ CÀI ĐẶT THỬ NGHIỆM HỆ THỐNG

4.1. Lựa chọn môi trƣờng và công cụ phát triển hệ thống

4.2. Lập chƣơng trình và kiểm thử hệ thống

4.3. Cài đặt hệ thống và thử nghiệm

4.3.1. Các nghiệp vụ cơ bản

4.3.2. Các nghiệp vụ ngƣời quản trị hệ thống (Phòng đào tạo)

4.3.3. Quản lý học viên

4.4. Các kết quả và đánh giá hệ thống

TÀI LIỆU THAM KHẢO

LỜI CẢM ƠN

Tóm tắt

I. Giải Pháp Thiết Kế Hướng Mẫu Cho Quản Lý Học Tập Hiện Đại

Trong bối cảnh số hóa giáo dục đại học, việc xây dựng một hệ thống quản lý học tập (LMS) hiệu quả là yêu cầu cấp thiết. Phân tích thiết kế hướng mẫu nổi lên như một phương pháp luận ưu việt, cung cấp các giải pháp đã được kiểm chứng cho những vấn đề lặp đi lặp lại trong phát triển phần mềm. Thay vì phát minh lại "bánh xe", phương pháp này cho phép tái sử dụng các kiến trúc và giải pháp từ kinh nghiệm của các chuyên gia, giúp rút ngắn thời gian phát triển, tăng cường tính ổn định và khả năng bảo trì. Đối với bài toán quản lý học tập cao đẳng, áp dụng thiết kế hướng mẫu không chỉ giải quyết các nghiệp vụ phức tạp như quản lý chương trình đào tạo theo tín chỉ hay theo dõi kết quả học tập, mà còn tạo ra một kiến trúc hệ thống giáo dục linh hoạt, dễ dàng mở rộng và tích hợp trong tương lai. Cách tiếp cận này giúp các cơ sở đào tạo xây dựng được các nền tảng e-learning mạnh mẽ, đáp ứng nhu cầu đa dạng của cả giảng viên và sinh viên.

1.1. Khái niệm và vai trò của Mẫu Thiết Kế Design Pattern

Theo Christopher Alexander, "Một mẫu mô tả một vấn đề xảy ra lặp đi lặp lại và mô tả phần cốt lõi của giải pháp cho vấn đề đó". Trong công nghệ phần mềm, mẫu thiết kế là các giải pháp tổng quát, có thể tái sử dụng cho các vấn đề thường gặp trong một bối cảnh thiết kế nhất định. Các mẫu này không phải là đoạn mã cụ thể mà là các mô tả hoặc khuôn mẫu về cách giải quyết một vấn đề. Vai trò chính của chúng là truyền bá tri thức và kinh nghiệm, giúp các nhà phát triển xây dựng phần mềm có cấu trúc tốt hơn, dễ hiểu và bảo trì. Việc sử dụng các mẫu giúp chuẩn hóa quy trình, giảm thiểu rủi ro và đảm bảo chất lượng cho các phần mềm quản lý đào tạo.

1.2. Phân loại các mẫu thiết kế phổ biến trong giáo dục

Các mẫu thiết kế thường được phân loại thành ba nhóm chính dựa trên mục đích sử dụng. Nhóm Mẫu Tạo dựng (Creational Patterns) giải quyết việc khởi tạo đối tượng, ví dụ như Mẫu Chế tạo (Factory Pattern) giúp tạo đối tượng mà không cần chỉ định lớp cụ thể. Nhóm Mẫu Cấu trúc (Structural Patterns) liên quan đến cách sắp xếp các lớp và đối tượng để tạo thành các cấu trúc lớn hơn, điển hình là Mẫu Ủy nhiệm (Proxy Pattern) dùng để kiểm soát quyền truy cập đối tượng. Cuối cùng, Nhóm Mẫu Hành vi (Behavioral Patterns) mô tả cách các đối tượng tương tác và phân chia trách nhiệm. Việc lựa chọn và kết hợp các mẫu này một cách hợp lý là chìa khóa để xây dựng một LMS cho trường cao đẳng vừa mạnh mẽ vừa linh hoạt.

II. Thách Thức Quản Lý Đào Tạo Tại Các Trường Cao Đẳng Hiện Nay

Thực trạng quản lý kết quả học tập tại nhiều cơ sở đào tạo, như được khảo sát tại Trường Cao đẳng Cộng đồng Hải Phòng, cho thấy nhiều bất cập. Quy trình đào tạo thủ công hoặc bán tự động thường phức tạp, rườm rà và dễ xảy ra sai sót. Việc thay đổi kế hoạch đào tạo đòi hỏi phải lặp lại nhiều quy trình thủ công, tốn kém thời gian và nguồn lực. Các phần mềm quản lý đào tạo hiện có trên thị trường thường thiếu tính tùy biến, khó đáp ứng đặc thù của từng trường. Điều này dẫn đến chi phí quản lý cao, bao gồm chi phí in ấn, nhân lực xử lý bảng điểm, và khó khăn trong việc thống kê, báo cáo. Những vấn đề này tạo ra rào cản lớn trong việc nâng cao chất lượng đào tạo và trải nghiệm của người học, thúc đẩy nhu cầu tìm kiếm một giải pháp công nghệ thông tin toàn diện và hiệu quả hơn.

2.1. Quy trình nghiệp vụ phức tạp và thiếu tính linh hoạt

Quy trình quản lý từ hồ sơ học viên, kế hoạch đào tạo, xếp lớp, đến nhập điểm và xét tốt nghiệp đều chứa nhiều bước phức tạp. Luận văn của Nguyễn Ánh Ngọc (2012) chỉ ra rằng "mỗi cơ sở đào tạo có mô hình quản lý khác nhau, đặc thù đào tạo rất đa dạng". Do đó, một hệ thống cứng nhắc sẽ không thể đáp ứng được các thay đổi về chương trình học, quy chế thi cử hay các biến động về sĩ số sinh viên. Việc thiếu một mô hình dữ liệu sinh viên thống nhất và linh hoạt gây khó khăn cho việc quản lý khóa học trực tuyếntheo dõi tiến độ học tập một cách chính xác.

2.2. Vấn đề bảo mật và tích hợp hệ thống thông tin

Dữ liệu học tập là thông tin nhạy cảm, đòi hỏi mức độ bảo mật hệ thống LMS cao. Các hệ thống cũ thường có lỗ hổng bảo mật, dễ bị truy cập trái phép hoặc thay đổi dữ liệu. Thêm vào đó, việc tích hợp các phần mềm riêng lẻ là một thách thức lớn. Một hệ thống quản lý đào tạo hiệu quả cần phải có khả năng tích hợp hệ thống thông tin sinh viên (SIS), hệ thống tài chính, và các công cụ học tập khác. Sự thiếu kết nối này tạo ra các "ốc đảo thông tin", làm giảm hiệu quả quản lý chung và gây khó khăn cho việc ra quyết định dựa trên dữ liệu.

III. Phương Pháp Áp Dụng Mẫu Ủy Nhiệm Proxy Để Tăng Bảo Mật

Mẫu Ủy nhiệm (Proxy Pattern) là một giải pháp cấu trúc mạnh mẽ để giải quyết các vấn đề về kiểm soát truy cập và bảo mật trong hệ thống quản lý học tập. Mẫu này định nghĩa một đối tượng trung gian (proxy) thay thế cho một đối tượng thật, qua đó kiểm soát mọi yêu cầu truy cập đến đối tượng thật đó. Trong bài toán quản lý điểm, Proxy Pattern có thể được ứng dụng để phân quyền truy cập. Ví dụ, chỉ có tác nhân "Giáo vụ" mới có quyền ghi điểm, trong khi tác nhân "Sinh viên" chỉ có quyền đọc điểm của chính mình. Bằng cách này, hệ thống đảm bảo rằng mọi thao tác trên dữ liệu nhạy cảm đều được kiểm soát chặt chẽ. Việc áp dụng mẫu này giúp xây dựng một lớp vỏ bảo vệ vững chắc, ngăn chặn các truy cập trái phép và đảm bảo tính toàn vẹn của dữ liệu học tập.

3.1. Kỹ thuật triển khai Mẫu Ủy nhiệm bảo vệ Protection Proxy

Protection Proxy được sử dụng để kiểm tra quyền hạn của client trước khi chuyển tiếp yêu cầu đến đối tượng đích. Trong LMS cho trường cao đẳng, khi một người dùng cố gắng thực hiện chức năng "Nhập điểm", hệ thống sẽ không gọi trực tiếp vào đối tượng xử lý điểm. Thay vào đó, yêu cầu sẽ được gửi đến một đối tượng Proxy. Đối tượng này sẽ kiểm tra vai trò và quyền hạn của người dùng. Nếu người dùng là "Giáo vụ" và có quyền hợp lệ, yêu cầu mới được chuyển tiếp. Nếu không, yêu cầu sẽ bị từ chối. Kỹ thuật này giúp tách biệt logic nghiệp vụ khỏi logic phân quyền, làm cho mã nguồn sạch hơn và dễ bảo trì hơn, đồng thời nâng cao bảo mật hệ thống LMS.

3.2. Cải thiện hiệu suất với Mẫu Ủy nhiệm ảo Virtual Proxy

Bên cạnh bảo mật, Mẫu Ủy nhiệm còn giúp tối ưu hóa hiệu suất. Virtual Proxy trì hoãn việc tạo ra các đối tượng "đắt giá" (tốn nhiều tài nguyên) cho đến khi chúng thực sự cần thiết. Ví dụ, khi hiển thị danh sách lớp với hàng trăm sinh viên, thay vì tải toàn bộ thông tin chi tiết của tất cả sinh viên ngay lập tức, hệ thống có thể sử dụng Virtual Proxy. Proxy này ban đầu chỉ hiển thị thông tin cơ bản. Chỉ khi người dùng nhấp vào một sinh viên cụ thể để xem chi tiết, đối tượng sinh viên đầy đủ mới được khởi tạo và tải dữ liệu. Cách làm này giúp giảm đáng kể thời gian tải trang và cải thiện trải nghiệm người dùng trong thiết kế UI/UX cho ứng dụng giáo dục.

IV. Hướng Dẫn Dùng Mẫu Chế Tạo Factory Để Khởi Tạo Đối Tượng

Mẫu Chế tạo (Factory Pattern) thuộc nhóm mẫu tạo dựng, cung cấp một giải pháp thanh lịch để trừu tượng hóa quá trình khởi tạo đối tượng. Thay vì để client trực tiếp sử dụng toán tử new để tạo các đối tượng cụ thể, Mẫu Chế tạo định nghĩa một giao diện chung để tạo đối tượng và cho phép các lớp con quyết định lớp nào sẽ được khởi tạo. Trong phần mềm quản lý đào tạo, mẫu này cực kỳ hữu ích khi hệ thống cần làm việc với nhiều loại đối tượng khác nhau nhưng có chung một bản chất, ví dụ như các loại báo cáo (bảng điểm, danh sách lớp, thống kê tốt nghiệp) hoặc các loại người dùng (Giảng viên, Sinh viên, Giáo vụ). Sử dụng Factory Pattern giúp hệ thống trở nên linh hoạt, dễ dàng thêm các loại đối tượng mới mà không cần sửa đổi mã nguồn ở phía client, tuân thủ nguyên tắc Mở/Đóng (Open/Closed Principle).

4.1. Xây dựng kiến trúc hệ thống giáo dục linh hoạt

Áp dụng Factory Pattern cho phép xây dựng một kiến trúc hệ thống giáo dục có khả năng thích ứng cao. Ví dụ, một ReportFactory có thể được tạo ra với phương thức createReport(reportType). Dựa vào reportType (ví dụ: 'SCORE_SHEET', 'CLASS_LIST'), factory sẽ trả về một đối tượng báo cáo tương ứng. Nếu trong tương lai, nhà trường có thêm một loại báo cáo mới, các nhà phát triển chỉ cần tạo một lớp báo cáo mới và cập nhật logic bên trong factory. Toàn bộ phần còn lại của hệ thống không bị ảnh hưởng. Điều này giúp việc mở rộng và bảo trì hệ thống trở nên đơn giản hơn rất nhiều, đặc biệt trong môi trường giáo dục luôn có những thay đổi về quy chế và yêu cầu báo cáo.

4.2. Quản lý vòng đời đối tượng trong quản lý khóa học

Mẫu Chế tạo không chỉ giúp khởi tạo mà còn kiểm soát vòng đời của đối tượng. Factory có thể quản lý một "pool" các đối tượng để tái sử dụng, giúp tiết kiệm tài nguyên hệ thống. Trong quản lý khóa học trực tuyến, khi cần tạo các đối tượng đại diện cho tài liệu học tập tuân thủ các chuẩn SCORM và xAPI, một Factory có thể đảm bảo rằng các đối tượng này được khởi tạo đúng cách với các tham số cần thiết. Hơn nữa, nó còn đảm bảo các đối tượng được thực thi an toàn, che giấu các thông tin chi tiết về việc khởi tạo khỏi client, giúp hệ thống trở nên an toàn và được quản lý tốt hơn.

V. Kết Quả Ứng Dụng Xây Dựng LMS Cho Trường Cao Đẳng Cộng Đồng

Luận văn "Phân tích thiết kế hướng mẫu và ứng dụng cho bài toán quản lý kết quả học tập tại trường Cao đẳng Cộng đồng" đã chứng minh hiệu quả thực tiễn của phương pháp này. Hệ thống được xây dựng đã giải quyết thành công các nghiệp vụ cốt lõi từ quản lý truy cập, quản lý tiến trình đào tạo, đến nhập điểm và in báo cáo. Việc áp dụng các mẫu thiết kế như Proxy và Factory đã tạo ra một phần mềm quản lý đào tạo có cấu trúc rõ ràng, dễ bảo trì và mở rộng. Kết quả thử nghiệm cho thấy hệ thống hoạt động ổn định, chính xác, giúp tin học hóa triệt để quy trình quản lý, giảm thiểu sai sót do thao tác thủ công và tiết kiệm đáng kể chi phí vận hành cho nhà trường. Đây là một minh chứng rõ ràng cho thấy thiết kế hướng mẫu là một hướng đi đúng đắn cho việc phát triển các nền tảng e-learning hiện đại.

5.1. Mô hình hóa chức năng và quy trình nghiệp vụ

Hệ thống được phân tích và đặc tả theo hướng đối tượng, xác định rõ các tác nhân (Quản trị, Cán bộ đào tạo, Giáo vụ, Sinh viên) và các ca sử dụng (use case) tương ứng. Các chức năng chính được mô hình hóa chi tiết, bao gồm: Quản trị người dùng, Cập nhật chương trình đào tạo, Triển khai chương trình học cho lớp, Cập nhật thông tin học viên và Nhập điểm. Việc mô hình hóa dữ liệu sinh viên và các thực thể liên quan như Lớp học, Môn học, Kết quả học tập đã tạo ra một cơ sở dữ liệu có cấu trúc chặt chẽ, đảm bảo tính nhất quán và toàn vẹn dữ liệu, là nền tảng cho việc theo dõi tiến độ học tập hiệu quả.

5.2. Đánh giá hiệu quả và khả năng mở rộng của hệ thống

Hệ thống sau khi cài đặt thử nghiệm đã nhận được những đánh giá tích cực. Các nghiệp vụ cơ bản như quản lý học viên, quản lý chương trình đào tạo, nhập điểm đều hoạt động trơn tru. Giao diện người dùng được thiết kế UI/UX cho ứng dụng giáo dục một cách trực quan, dễ sử dụng. Quan trọng hơn, nhờ kiến trúc hướng mẫu, hệ thống có khả năng mở rộng rất lớn. Việc thêm các tính năng mới như quản lý khóa học trực tuyến theo chuẩn chuẩn SCORM và xAPI, hoặc tích hợp hệ thống thông tin sinh viên (SIS) hiện có đều có thể thực hiện mà không phá vỡ cấu trúc tổng thể. Điều này đảm bảo vòng đời và giá trị sử dụng lâu dài của phần mềm.

22/09/2025

Trích đoạn nội dung tài liệu

MỞ ĐẦU Những năm gần đây, cùng với sự phát triển mạnh mẽ của kinh tế - xã hội, nhu cầu bổ sung một lực lƣợng lao động đông đảo cho xã hội ngày một lớn. Để đáp ứng nhu cầu này, các cơ sở đào tạo cũng vì thế tăng lên một cách nhanh chóng cả về số lƣợng lẫn quy mô đào tạo với đủ loại hình đào tạo, ngành nghề đa dạng. Để đạt hiệu quả cao trong quá trình quản lý, rất nhiều các cơ sở đào tạo đã ứng dụng thế mạnh của Công nghệ thông tin vào các công việc nghiệp vụ. Các phần mềm về lĩnh vực quản lý đào tạo hiện có mặt rất nhiều trên thị trƣờng.

Nhƣng vì mỗi cơ sở đào tạo có mô hình quản lý khác nhau, đặc thù đào tạo rất đa dạng nên việc phát triển, sử dụng các phần mềm cho mỗi cơ sở tốn rất nhiều thời gian, công sức để tạo ra và chỉnh sửa cho phù hợp. Mặt khác, do các cơ sở sử dụng nhiều phần mềm quản lý khác nhau nên rất khó khăn cho các đơn vị chủ quản trong việc thống kê, báo cáo, nắm bắt đƣợc tình hình chung. Mặt khác trƣờng Cao đẳng Cộng đồng Hải phòng đang có nhu cầu về một chƣơng trình quản lý đào tạo tốt để phục vụ và nâng cao chất lƣợng đào tạo của trƣờng. Vì lý do trên mà tôi chọn đề tài “Phân tích thiết kế hướng mẫu và ứng dụng cho bài toán quản lý kết quả học tập tại trường Cao đẳng Cộng đồng” làm đề tài luận văn của tôi.

Ngày nay, phát triển phần mềm hƣớng mẫu đang là một hƣớng đƣợc sử dụng rộng rãi. Trƣớc hết nó cho phép dễ sửa đổi, mở rộng chƣơng trình sau này. Mặt khác, việc sử dụng mẫu sẽ cho chƣơng trình có cấu trúc tốt, có thể sử dụng lại các kiến trúc đƣợc đúc rút qua kinh nghiệm của các chuyên gia, nhờ vậy giảm thời gian và công sức phát triển và bảo trì. Chính những ƣu thế này mà tôi chọn công nghệ phân tích thiết kế hƣớng mẫu để giải quyết bài toán đặt ra.

Luận văn đƣợc chia làm 4 chƣơng: Chƣơng 1: Tổng quan về phân tích thiết kế hƣớng mẫu Chƣơng 2: Bài toán quản lý kết quả học tập và giải pháp Chƣơng 3: Phân tích thiết kế bài toán hƣớng mẫu Chƣơng 4: Xây dựng chƣơng trình và cài đặt thử nghiệm hệ thống Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 2 Chƣơng 1. TỔNG QUAN VỀ PHÂN TÍCH THIẾT KẾ HƢỚNG MẪU 1. Khái niệm mẫu thiết kế, các đặc trƣng, phân loại mẫu thiết kế 1. Khái niệm Theo định nghĩa của Christopher Alexander: “Một mẫu mô tả một vấn đề xảy ra lặp đi lặp lại và mô tả phần cốt lõi của giải pháp cho vấn đề đó, chúng ta có thể sử dụng lại giải pháp đã có hàng triệu lần” [7].

Nói chung, một mẫu mô tả một vấn đề thƣờng xảy ra trong phát triển phần mềm và mô tả giải pháp cho vấn đề đó theo cách có thể dùng lại đƣợc. Các mẫu là phƣơng tiện truyền bá tri thức và kinh nghiệm, truyền từ những ngƣời giàu kinh nghiệm đến những ngƣời thiếu kinh nghiệm. Hầu hết các mẫu được xây dựng để hỗ trợ chỉ cho tiếp cận hướng đối tượng Thông thƣờng một mẫu đƣợc thể hiện với 4 yếu tố chính:  Tên mẫu: cụm từ ngắn, cho phép tham chiếu đến mẫu  Vấn đề: mô tả khi nào áp dụng mẫu, giải thích vấn đề và khung cảnh.  Giải pháp cho vấn đề: mô tả các yếu tố tạo nên thiết kế, các mối quan hệ giữa chúng, các trách nhiệm và sự cộng tác giữa chúng.

Giải pháp không mô tả thiết kế hoặc triển khai cụ thể, vì một mẫu có thể đƣợc áp dụng trong nhiều tình huống khác nhau. Mẫu chỉ cung cấp bản mô tả trừu tƣợng về một vấn đề thiết kế và việc sắp xếp các yếu tố ở mức chung nhất để giải quyết nó.  Kết quả: là các kết quả của việc áp dụng mẫu. Vì chúng ta luôn phải trả giá cho việc áp dụng mẫu nên trƣớc đó chúng ta cần xác định chi phí bỏ ra cũng nhƣ kết quả thu về để có thể quyết định lựa chọn mẫu phù hợp và áp dụng nó.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 3 Ví dụ: Tên mẫu: Creator Vấn đề: Ai có trách nhiệm tạo ra một thể hiện mới của một lớp? Giải pháp Lớp B có trách nhiệm tạo ra một thể hiện mới của lớp A nếu một trong các điều kiện dƣới đây thỏa mãn: - B là một tập hợp các đối tƣợng A (B và A có mối quan hệ aggregate) - B chứa các đối tƣợng A (B và A có mối quan hệ contain) - B lƣu lại các thể hiện của các đối tƣợng A - B sử dụng các đối tƣợng A - B có dữ liệu khởi tạo mà đƣợc truyền tới A khi nó đƣợc tạo. Các đặc trƣng Mẫu thiết kế giải quyết nhiều vấn đề mà các nhà thiết kế hƣớng đối tƣợng phải đối mặt và bằng nhiều cách khác nhau. Dƣới đây là một số vấn đề mà mẫu có thể giải quyết và cách thức mẫu giải quyết các vấn đề đó. - Tìm các đối tượng (object) phù hợp Trong thiết kế hƣớng đối tƣợng, chúng ta cần phân chia một hệ thống thành các đối tƣợng.

Việc này là không dễ dàng vì thiết kế của chúng ta phải đảm bảo các tiêu chí nhƣ bao gói, mịn, độc lập, mềm dẻo, hiệu năng, tái sử dụng,… Các tiêu chí này thƣờng mâu thuẫn nhau. Đã có nhiều cách tiếp cận khác nhau để thực hiện công việc này, hoặc là viết ra một câu mô tả ngắn về vấn đề với các danh từ và các động từ, chúng ta tạo ra các lớp (class) và phƣơng thức (method) của các lớp tƣơng ứng với các danh từ và các động từ tìm đƣợc trong câu mô tả, hoặc là chúng ta mô hình hóa các đối tƣợng của thế giới thực và chuyển các đối tƣợng đƣợc tìm thấy trong giai đoạn phân tích sang giai đoạn thiết kế. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 4 Các mẫu thiết kế giúp chúng ta xác định các đối tƣợng phù hợp. Ví dụ, các đối tƣợng thể hiện các vi xử lý hay các thuật toán mà không xuất hiện trong thế giới thực nhƣng chúng lại là phần cốt lõi của các thiết kế mềm dẻo.

Mẫu Strategy mô tả cách triển khai họ các thuật toán. Mẫu State thể hiện mỗi trạng thái của một thực thể nhƣ là một đối tƣợng. Các đối tƣợng này ít khi đƣợc tìm thấy trong giai đoạn phân tích hoặc giai đoạn đầu của thiết kế, chúng chỉ đƣợc nhận ra khi hoàn thiện thiết kế để tăng tính mềm dẻo và tăng khả năng tái sử dụng của thiết kế. - Quyết định kĩch cỡ của các đối tượng Các mẫu hỗ trợ việc xác định đối tƣợng, phân chia đối tƣợng để thu đƣợc các đối tƣợng với kích thƣớc nhỏ hơn.

Ví dụ, Mẫu Abstract Factory và mẫu Builder sinh ra các đối tƣợng mà trách nhiệm duy nhất của chúng là tạo ra các đối tƣợng khác, mẫu Visitor và mẫu Command sinh ra các đối tƣợng mà trách nhiệm duy nhất của chúng là triển khai một yêu cầu trên một đối tƣợng khác hoặc trên một nhóm đối tƣợng khác. - Đặc tả các giao diện đối tượng (object interface) Các tác vụ (operator) của đối tƣợng đƣợc mô tả bằng tên tác vụ, tham số, giá trị trả về. Mô tả tác vụ còn đƣợc gọi là khai báo tác vụ. Tập hợp tất cả các khai báo tác vụ của một đối tƣợng tạo thành giao diện của đối tƣợng đó.

Giao diện của một đối tƣợng thể hiện các yêu cầu có thể đƣợc gửi đến đối tƣợng đó, bất kỳ yêu cầu nào mà khớp với một khai báo trong giao diện đều có thể đƣợc gửi tới đối tƣợng. Một kiểu (type) là một tên gọi đƣợc sử dụng để nói đến một giao diện cụ thể. Chúng ta nói rằng, một đối tƣợng có kiểu Window nếu nó chấp nhận tất cả các yêu cầu cho các tác vụ đƣợc định nghĩa trong giao diện có tên là Window. Một đối tƣợng có nhiều kiểu và các đối tƣợng khác nhau có thể chia xẻ cùng một kiểu.

Một phần của giao diện đối tƣợng có thể đặc trƣng bởi một kiểu và các phần khác thì bởi các kiểu khác. Hai đối tƣợng của cùng một kiểu chỉ cần chia xẻ các phần giao diện của chúng. Các giao diện có thể chứa các giao diện khác nhƣ là các tập con của chúng. Chúng ta Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 5 nói rằng một kiểu là kiểu con của kiểu khác nếu giao diện của nó chứa giao diện của siêu kiểu của nó (kiểu cha của nó).

Thông thƣờng chúng ta nói, một kiểu con thừa kế giao diện của kiểu cha của nó. Các giao diện là các đối tƣợng cơ bản của các hệ thống hƣớng đối tƣợng. Các đối tƣợng đựợc biết chỉ qua giao diện của chúng. Không có cách nào để biết bất cứ điều gì về một đối tƣợng mà không thông qua giao diện của nó.

Hai đối tƣợng có triển khai khác nhau hoàn toàn có thể có giao diện giống nhau. Khi một yêu cầu đƣợc gửi đến một đối tƣợng, tác vụ nào đƣợc thực hiện là phụ thuộc vào cả đối tƣợng gửi và đối tƣợng nhận yêu cầu. Các đối tƣợng khác nhau hỗ trợ các yêu cầu giống nhau có thể có các triển khai khác nhau của tác vụ mà đáp ứng các yêu cầu đó. Liên kết của một yêu cầu tới một đối tƣợng và một trong các tác vụ của nó tại thời gian chạy đƣợc gọi là liên kết động (dynamic binding).

Liên kết động có nghĩa là một yêu cầu không đƣợc hồi đáp cho tới thời gian chạy. Kết quả là chúng ta có thể viết ra các chƣơng trình mà mong đợi một đối tƣợng với một giao diện cụ thể. Biết rằng bất kỳ đối tƣợng nào có giao diện đúng sẽ chấp nhận yêu cầu. Tuy nhiên liên kết động cho phép chúng ta nhận ra các đối tƣợng mà có các giao diện giống nhau ở mỗi thời gian chạy khác nhau.

Tính chất này đƣợc gọi là đa hình (polymorphism), nó là khái niệm chính trong hệ thống hƣớng đối tƣợng. Đa hình tách biệt các đối tƣợng và giúp chúng có những mối quan hệ khác nhau ở mỗi thời gian chạy. Các mẫu thiết kế giúp định nghĩa các giao diện bằng cách nhận ra các yếu tố chính và các loại dữ liệu chính mà có thể gửi và nhận qua giao diện. Mẫu thiết kế cũng có thể cho ta biết những gì không nên đặt ở trên giao diện, chẳng hạn mẫu Memento.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ