Tải bản đầy đủ (.pdf) (119 trang)

(Luận văn thạc sĩ) nghiên cứu các mẫu thiết kế và ứng dụng để xây dựng hệ thống quản lý thông tin tổng thể cho doanh nghiệp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.67 MB, 119 trang )


MỤC LỤC

BẢNG CHỮ VIẾT TẮT .................................................................................................5
DANH MỤC CÁC HÌNH VẼ VÀ ðỒ THỊ....................................................................6
MỞ ðẦU .........................................................................................................................9
1. Cơ sở khoa học và thực tiễn của ñề tài:.................................................................9
2. Mục tiêu và phạm vi nghiên cứu của luận văn ....................................................11
3. Nội dung nghiên cứu và thực hiện của luận văn .................................................11
4. Tóm tắt cấu trúc của luận văn..............................................................................12
CHƯƠNG 1...................................................................................................................13
TỔNG QUAN VỀ MƠ HÌNH SỬ DỤNG LẠI ............................................................13
1.1. Giới thiệu chung ...............................................................................................13
1.2. Tổng quan về các mẫu thiết kế .........................................................................13
1.2.1. Mẫu thiết kế là gì ? ..........................................................................13
1.2.1.1. Các ñịnh nghĩa về mẫu thiết kế [4,9].......................................13
1.2.1.2. Các thành phần của mẫu thiết kế [8,9] ....................................14
1.2.2. Danh mục các mẫu thiết kế và phân loại [9] ...................................15
1.2.3. Sơ ñồ mối quan hệ giữa các mẫu thiết kế [9] ..................................17
1.3. Một số mẫu thiết kế điển hình trong các ứng dụng quản lý. ............................17
1.3.1. Mẫu Quan sát ...................................................................................18
1.3.2. Mẫu Thực hiện lệnh.........................................................................20
1.3.3. Mẫu Trạng thái ................................................................................22
1.3.4. Mẫu Phương thức tiêu bản...............................................................23
1.3.5. Mẫu Chuỗi các trách nhiệm.............................................................24
1.3.6. Mẫu Chiến lược ...............................................................................26
1.3.7. Mẫu Kịch bản thao tác .....................................................................28
1.3.8. Mẫu Mô hình lĩnh vực .....................................................................29
1.3.9. Mẫu Cổng dữ liệu của bảng.............................................................31
1.3.10. Mẫu ðối tượng chuyển ñổi dữ liệu................................................33
CHƯƠNG 2...................................................................................................................36




-2TỔNG QUAN VỀ HỆ THỐNG HOẠCH ðỊNH NGUỒN LỰC DOANH NGHIỆP ERP ................................................................................................................................36
2.1. Lịch sử hình thành ............................................................................................36
2.2. ERM- Sự tích hợp ERP và Nghiệp vụ sản xuất kinh doanh ............................40
2.3. Lợi ích của danh nghiệp khi sử dụng ERP .......................................................43
2.3.1 Tiếp cận thơng tin quản trị đáng tin cậy ...........................................43
2.3.2 Cơng tác kế tốn chính xác hơn........................................................43
2.3.3 Cải tiến quản lý hàng tồn kho ...........................................................43
2.3.4 Tăng hiệu quả sản xuất .....................................................................43
2.3.5 Quản lý nhân sự hiệu quả hơn ..........................................................44
2.3.6 Các qui trình kinh doanh được xác định rõ ràng hơn .......................44
CHƯƠNG 3...................................................................................................................45
ỨNG DỤNG CÁC MẪU THIẾT KẾ ðỂ XÂY DỰNG CÁC PHÂN HỆ TRONG HỆ
THỐNG QUẢN LÝ DOANH NGHIỆP .......................................................................45
3.1. Phân hệ chính: Các lớp cơ sở, quản lý bảo mật, báo cáo. ................................45
3.1.1. Bài tốn đặt ra ..................................................................................45
3.1.2. Phạm vi bài tốn ..............................................................................46
3.1.3. Phân tích u cầu bài tốn và xác định giải pháp ............................46
3.1.4. Thiết kế Phân hệ chính ....................................................................47
3.1.4.1. Thiết kế các lớp xử lý, truy cập CSDL ....................................48
3.1.4.2. Chức năng Quản lý bảo mật ứng dụng ....................................53
3.1.4.3. Chức năng Quản lý cấu trúc các bảng dữ liệu .........................69
3.2. Phân hệ Quản lý mua bán vật tư – ngun liệu ................................................74
3.2.1. Bài tốn đặt ra ..................................................................................74
3.2.2. Phạm vi bài tốn ..............................................................................75
3.2.3. Mơ tả nghiệp vụ quản lý ..................................................................75
3.2.3.1. Xác định các thơng tin chung về quản lý mua bán vật tư,
nguyên liệu ....................................................................................................75
3.2.3.2. Công tác quản lý hoạt ñộng mua bán vật tư - nguyên liệu ......78



-33.2.3.3. Sơ đồ tiến trình quản lý hoạt động mua bán vật tư..................79
3.2.3.4. Các yêu cầu của phân hệ quản lý mua bán vật tư-nguyên liệu80
3.2.3.5. Các chức năng của Phân hệ quản lý mua bán vật tư-nguyên
liệu .................................................................................................................80
3.2.3.6. Từ điển dữ liệu và mơ hình lĩnh vực nghiệp vụ ......................81
3.2.4. ðặc tả hệ thống ................................................................................83
3.2.4.1. Các tác nhân của hệ thống .......................................................83
3.2.4.2. Các ca sử dụng tiêu biểu của hệ thống ....................................85
3.2.4.3. Mơ hình ca sử dụng tổng thể ...................................................88
3.2.4.4. Mô tả chi tiết các ca sử dụng ...................................................89
3.2.5. Phân tích hệ thống ...........................................................................95
3.2.5.1. Phân tích các ca sử dụng..........................................................95
3.2.5.1. Phân tích các lớp....................................................................101
3.2.6. Thiết kế hệ thống ...........................................................................105
3.2.6.1. Kiến trúc vật lý của ứng dụng ...............................................105
3.2.6.2. Xác ñịnh các gói thiết kế .......................................................106
3.2.6.3. Thiết kế cho từng ca sử dụng.................................................106
CHƯƠNG 4.................................................................................................................109
CÀI ðẶT VÀ TRIỂN KHAI HỆ THỐNG .................................................................109
4.1. Các yêu cầu cài ñặt triển khai hệ thống..........................................................109
4.2. Giới thiệu chương trình ..................................................................................110
4.2.1. Các mục tiêu mà hệ thống ñạt ñược ..............................................110
4.2.2. Cấu trúc chương trình ....................................................................110
4.2.3. Các ñối tượng sử dụng chương trình ............................................111
4.2.4. Giao diện một số chức năng chính ................................................112
4.3. Khả năng triển khai áp dụng...........................................................................114
KẾT LUẬN .................................................................................................................115
1. Các kết quả ñạt ñược .........................................................................................115

2. Những vấn ñề tồn tại và hướng phát triển .........................................................116


-4TÀI LIỆU THAM KHẢO ...........................................................................................117
Tài liệu tiếng Việt ..................................................................................................117
Tài liệu tiếng Anh ..................................................................................................117
Các trang Web .......................................................................................................118
Bộ công cụ .............................................................................................................118


BẢNG CHỮ VIẾT TẮT
Chữ viết tắt

Tên ñầy ñủ

APICS

American Production and Inventory Control Society

BOM

Bill of Materials

CSDL

Cơ Sở Dữ Liệu

ERP

Enterprise Resource Planning


ERM

Enterprise Resource Management

GOF

Gang Of Four

GUI

Graphic User Interface

MRP

Material Requirements Planning

MRP II

Manufacturing Resource Planning

NCC

Nhà cung cấp

SQL

Strured-Query Languague

VT-NL


Vật tư- Nguyên liệu


DANH MỤC CÁC HÌNH VẼ VÀ ðỒ THỊ
Hình 1.1: Sơ ñồ mối quan hệ giữa các mẫu thiết kế......................................................17
Hình 1.2: Cấu trúc mẫu Observer..................................................................................18
Hình 1.3: Biểu đồ cộng tác của mẫu Observer..............................................................19
Hình 1.4: Cấu trúc mẫu Command................................................................................20
Hình 1.5: Biểu đồ cộng tác của mẫu Command............................................................21
Hình 1.6: Cấu trúc mẫu State ........................................................................................22
Hình 1.7: Cấu trúc mẫu Template Method....................................................................23
Hình 1.8.1: Cấu trúc mẫu Chain of Responsibility .......................................................25
Hình 1.8.2: Cấu trúc mẫu Chain of Responsibility .......................................................25
Hình 1.9: Cấu trúc mẫu Strategy ...................................................................................26
Hình 1.10: Cấu trúc mẫu Transaction Script .................................................................28
Hình 1.11: Cấu trúc mẫu Transaction Script kết hợp với mẫu Command ....................29
Hình 1.12: Cấu trúc mẫu Domain Model sử dụng mẫu Strategy ..................................30
Hình 1.13: Cấu trúc mẫu Table Data Gateway .............................................................32
Hình 1.14: Cấu trúc mẫu Data Transfer Object.............................................................34
Hình 2.1 Lịch sử phát triển của ERP .............................................................................37
Hình 2.2 ERM – Sự tích hợp ERP và nghiệp vụ...........................................................41
Hình 2.3 ðịnh nghĩa mơ hình ERM. .............................................................................42
Hình 3.1. Kiến trúc hệ thống dựa trên mẫu MVC. ........................................................47
Hình 3.2. Kiến trúc các lớp giao tiếp CSDL sử dụng mẫu thiết kế...............................48
Hình 3.3. Sử dụng Table Definition để giảm thiểu thay đổi. ........................................50
Hình 3.4. Cấu trúc các phân lớp quản lý các gói của mỗi Phân hệ trong hệ thống.......51
Hình 3.5. Lược ñồ lớp xử lý dữ liệu của ñối tượng Nhân viên. ....................................53
Hình 3.6. Q trình đăng nhập hệ thống. ......................................................................54
Hình 3.7. Mơ hình tổng thể các ca sử dụng liên quan đến bảo mật. .............................54

Hình 3.8. Các lớp thực thi ca sử dụng ðăng nhập.........................................................59
Hình 3.9. Biểu đồ cộng tác ca sử dụng ðăng nhập. ......................................................60
Hình 3.10. Các lớp thực thi ca sử dụng ðổi mật khẩu. .................................................60
Hình 3.11. Biểu ñồ cộng tác ca sử dụng ðổi mật khẩu. ................................................61
Hình 3.12. Các lớp trong ca sử dụng Cập nhật nhóm quyền.........................................61
Hình 3.13. Biểu đồ cộng tác ca sử dụng Cập nhật nhóm quyền. ..................................62


-7Hình 3.14. Các lớp trong ca sử dụng Phân quyền. ........................................................62
Hình 3.15. Biểu đồ cộng tác ca sử dụng Phân quyền. ...................................................63
Hình 3.16. Lớp thiết kế ca sử dụng ðăng nhập chưa áp dụng mẫu ..............................65
Hình 3.17. Các lớp thiết kế trong ca sử dụng ðăng nhập áp dụng các mẫu thiết kế. ...66
Hình 3.18. Các lớp thiết kế ca sử dụng ðổi mật khẩu chưa áp dụng mẫu ....................67
Hình 3.19. Các lớp thiết kế trong ca sử dụng ðổi mật khẩu áp dụng các mẫu thiết kế.
.......................................................................................................................................67
Hình 3.20. Kiến trúc các lớp bảo mật ứng dụng............................................................68
Hình 3.21. Mơ hình ca sử dụng phần Quản lý cấu trúc bảng. .......................................70
Hình 3.22. Các lớp của ca sử dụng Cập Nhật Nhóm Bảng ...........................................70
Hình 3.23. Biểu đồ cộng tác ca sử dụng Cập Nhật Nhóm Bảng ...................................71
Hình 3.24. Các lớp của ca sử dụng Cập Nhật Bảng ......................................................71
Hình 3.25. Biểu đồ cộng tác ca sử dụng Cập Nhật Bảng ..............................................72
Hình 3.26. Các lớp thiết kế trong ca sử dụng Cập nhật nhóm bảng..............................72
Hình 3.27. Các lớp thiết kế trong ca sử dụng cập nhật nhóm bảng áp dụng mẫu.........73
Hình 3.28. Các lớp thiết kế trong ca sử dụng Cập nhật bảng........................................73
Hình 3.29. Các lớp thiết kế trong ca sử dụng Cập nhật bảng áp dụng mẫu ..................73
Hình 3.30. Kiến trúc lớp của phần Quản lý cấu trúc bảng ............................................74
Hình 3.31. Mơ hình phân cấp quản lý trong doanh nghiệp ...........................................76
Hình 3.32: Sơ ñồ tiến trình quản lý mua bán VT-NL ...................................................79
Hình 3.33: Mơ hình khái niệm của chức năng Quản lý mua bán VT-NL.....................83
Hình 3.34: Mơ hình ca sử dụng tổng thể của Phân hệ Quản lý mua bán VT-NL .........88

Hình 3.35: Các lớp thực thi ca sử dụng Lập phiếu yêu cầu mua...................................95
Hình 3.36: Biểu đồ cộng tác các lớp ca sử dụng Lập phiếu yêu cầu mua.....................96
Hình 3.37: Các lớp thực thi ca sử dụng Lập yêu cầu báo giá........................................96
Hình 3.38: Biểu ñồ cộng tác các lớp ca sử dụng Lập yêu cầu báo giá..........................97
Hình 3.39: Các lớp thực thi ca sử dụng Lập u cầu đặt hàng......................................97
Hình 3.40: Biểu ñồ cộng tác các lớp ca sử dụng Lập yêu cầu đặt hàng........................98
Hình 3.41: Các lớp phân tích thực thi ca sử dụng Lập phiếu Nhận hàng .....................98
Hình 3.42: Biểu ñồ cộng tác các lớp ca sử dụng Lập phiếu nhận hàng ........................99
Hình 3.43: Các lớp phân tích thực thi ca sử dụng Lập phiếu u cầu thanh tốn.......100
Hình 3.44: Biểu ñồ cộng tác các lớp ca sử dụng Lập phiếu nhận hàng ......................100


-8Hình 3.45: Kiến trúc vật lý của ứng dụng. ..................................................................105
Hình 3.46: Các lớp thiết kế ca sử dụng Lập yêu cầu mua hàng. .................................106
Hình 3.47: Các lớp thiết kế ca sử dụng Lập yêu cầu mua hàng sử dụng mẫu. ...........107
Hình 3.48: Các lớp thiết kế ca sử dụng Lập yêu cầu báo giá. .....................................107
Hình 3.49: Các lớp thiết kế ca sử dụng Lập yêu cầu báo giá. .....................................108
Hình 3.50: Lớp thiết kế yêu cầu mua hàng áp dụng mẫu State...................................108
Hình 4.1: Giao diện chính của chương trình. ..............................................................112
Hình 4.2: Giao diện quản lý thực đơn. ........................................................................112
Hình 4.3: Giao diện quản lý Báo cáo. .........................................................................113
Hình 4.4: Giao diện quản lý Khách hàng. ...................................................................114


MỞ ðẦU
1. Cơ sở khoa học và thực tiễn của ñề tài:
a. Cơ sở khoa học và ý nghĩa thực tiễn của việc nghiên cứu và ứng dụng các mơ
hình sử dụng lại vào quá trình thiết kế phần mềm:
Một trong những giải pháp ñể nâng cao năng suất của quá trình phát triển phần
mềm là xây dựng những giải pháp để có thể sử dụng lại trong các bước tiếp theo hoặc

trong các dự án phần mềm khác. Sự ra ñời của những giải pháp hướng ñối tượng mà
chủ yếu là phân tích thiết kế và lập trình hượng ñối tượng ñã ñem lại những bước tiến
ñáng kể. Trong đó, thiết kế hướng đối tượng đóng vai trị định hướng và quyết ñịnh
ñến việc sử dụng lại những tài nguyên trong quá trình phát triển phần mềm.
Thiết kế hướng ñối tượng cho phép chúng ta theo dõi và quản lý được sự phụ
thuộc giữa các mơ đun trong kiến trúc của hệ thống. Tuy nhiên, thiết kế một phần mềm
hướng đối tượng đã khó, việc thiết kế phần mềm hướng đối tượng với các thành phần
có thể sử dụng lại thậm chí cịn khó hơn nhiều. Trước tiên, cần phải tìm ra các đối
tượng thật chính xác, thể hiện chúng dưới các lớp ñối tượng với mức ñộ trừu tượng
phù hợp. ðồng thời, ta cũng cần chỉ ra ñược sơ ñồ thừa kế, mối liên hệ và giao tiếp của
những ñối tượng này. Những yêu cầu trên cần thiết kế để đáp ứng được u cầu của
bài tốn hiện tại song cũng cần có tính tổng qt và linh hoạt đủ để có thể giải quyết
một phần hoặc tồn bộ các bài tốn có thể gặp trong tương lai.
Một kinh nghiệm thường được áp dụng trong q trình thiết kế là khơng tìm cách
giải quyết mọi vấn đề bằng những thành phần căn bản. Thay vào đó, ta cần tìm cách áp
dụng những mơ hình đã thành cơng trong thực tế đối với một số bài tốn tương tự đã
từng gặp. Một khi mơ hình giải quyết đã đủ hồn thiện, nó có thể được sử dụng lại
nhiều lần trong những lớp bài tốn với u cầu nhất định. Khi đó, người thiết kế khi
gặp một bài tồn nào ñó, qua xem xét ñể xác ñịnh ñược lớp bài tốn, họ có thể tìm ra
được mơ hình thiết kế phù hợp và áp dụng ngay những mơ hình đó vào thiết kế của
mình mà khơng cần phải xem xét lại từ đầu.
Việc nghiên cứu và ứng dụng các mơ hình sử dụng lại vào quá trình thiết kế phần
mềm là một bước tiếp cận mới trong khâu phân tích và thiết kế phần mềm hướng ñối
tượng. Việc áp dụng các mơ hình sử dụng lại vào q trình thiết kế làm giảm thiểu thời
gian và chi phí để thiết kế phần mềm, nâng cao khả năng ứng dụng và mở rộng phát
triển trong tương lai của phần mềm ứng dụng. Thiết kế phần mềm là một trong những
khâu quan trọng nhất của quy trình xây dựng phần mềm, giai ñoạn này quyết ñịnh rất
lớn ñến sự thành công hay thất bại của phần mềm. Các mơ hình sử dụng lại ñã ñược



- 10 nghiên cứu và áp dụng thành công vào thực tế, dó đó việc áp dụng các mơ hình sử
dụng lại vào quá trình thiết kế làm giảm thiểu tính rủi ro trong q trình xây dựng phần
mềm sau này.
b. Cơ sở khoa học và ý nghĩa thực tiễn của việc nghiên cứu, thiết kế và xây dựng
Hệ thống Quản lý tổng thể doanh nghiệp:
Ngày nay, với sự phát triển nhanh chóng của khoa học kỹ thuật nói chung và
cơng nghệ thơng tin nói riêng đã mang lại nhiều thành tựu to lớn. Những thành tựu của
khoa học ñược áp dụng trong tất cả các hoạt ñộng của con người và đã đem lại những
thành cơng hết sức lớn lao. Ở Việt Nam hiện nay, các cơng ty, xí nghiệp và các doanh
nghiệp vừa và nhỏ hầu hết ñã trang bị cơ sở hạ tầng về máy tính và kết nối mạng ñã
tạo cơ sở cho việc áp dụng những cơng nghệ mới của mạng máy tính và Internet vào
lĩnh vực tìm kiếm, tổ chức và xử lý thơng tin phục vụ cơng tác điều hành và quản lý
sản xuất. Với cơ sở hạ tầng công nghệ thông tin ngày càng phát triển mở rộng, các tổ
chức, doanh nghiệp ngày càng có nhu cầu tin học hố mọi lĩnh vực công việc, sản
xuất, quản lý,… và mong muốn mọi thơng tin quản lý điều hành sản xuất đều được lưu
trữ trên máy tính một cách tập trung để có thể tra cứu tìm kiếm dễ dàng và nhanh
chóng mỗi khi có nhu cầu.
Hiện nay hầu hết các doanh nghiệp ñã ứng dụng CNTT trong việc quản lý ñiều
hành doanh nghiệp của mình. Tuy nhiên, qua khảo sát thực tế cho thấy, hầu hết các hệ
thống phần mềm của các doanh nghiệp ñang hoạt ñộng khá ñộc lập, hầu như khơng
liên kết được với nhau hoặc nếu có thì liên kế với nhau một cách rất hạn chế. Chính vì
việc liên kết các hệ thống phần mềm khác nhau trong một doanh nghiệp thành một hệ
thống tập trung, quản lý tổng thể và chia sẻ thông tin trong doanh nghiệp một cách
ñồng nhất, trong suốt là một nhu cầu hết sức cấp thiết.
Từ nhu cầu thực tiễn xã hội và ñặc biệt là của ñơn vị ñang công tác, cùng với cơ
sở khoa học của việc nghiên cứu ứng dụng các mơ hình sử dụng lại vào q trình phân
tích thiết kế phần mềm, luận văn ñã chọn ñề tài với tên gọi “Nghiên cứu các mẫu thiết
kế và ứng dụng để xây dựng Hệ thống Quản lý thơng tin tổng thể doanh nghiệp”.
Mục tiêu của bài toán “Xây dựng Hệ thống Quản lý thông tin tổng thể cho doanh
nghiệp” là xây dựng một hệ thống quản lý thông tin bao gồm nhiều Phân hệ. Mỗi một

Phân hệ giải quyết ñược chọn vẹn một hay một số yêu cầu của bài tốn nghiệp vụquản lý thơng tin của doanh nghiệp.
Hệ thống được xây dựng sử dụng các cơng nghệ kỹ thuật mới như: ứng dụng
hướng tiếp cận áp dụng các mẫu thiết kế, sử dụng cơng cụ mơ hình hố UML để phân
tích và thiết kế bài tốn theo mơ hình hướng đối tượng; ứng dụng cơng nghệ ứng dụng


- 11 chủ-khách (COM+) ñể cập nhật và xử lý thơng tin. ðồng thời hệ thống cũng được thiết
kế để có thể chạy được cả trên nền Web lẫn desktop application.
Với hướng tiếp cận phân tích và thiết kế hệ thống áp dụng cơng nghệ hướng đối
tượng sử dụng các mẫu thiết kế, và sử dụng công nghệ .NET của Microsoft ñể xây
dựng và phát triển hệ thống, cho phép hệ thống dễ bảo trì và phát triển mở rộng trong
tương lai ñáp ứng ñược các yêu cầu thay ñổi và phát triển ngày càng cao của xã hội.
Hệ thống ñược xây dựng hoàn toàn khả thi khi ñược áp dụng vào các tổ chức và doanh
nghiệp có kết nối mạng máy tính.

2. Mục tiêu và phạm vi nghiên cứu của luận văn


Nghiên cứu các mơ hình sử dụng lại và nắm bắt ñược mục tiêu, ý nghĩa và
cách thức, tình huống áp dụng các mơ hình sử dụng lại vào giải quyết các vấn
đề cụ thể. Qua đó, tổng hợp lại một số mẫu điển hình về hành vi và trình diễn,
và một số mẫu tiêu biểu ứng dụng trong các hệ thống quản lý doanh nghiệp.



Nắm bắt ñược phương pháp phân tích thiết kế hướng đối tượng một hệ thống.
Sử dụng phương pháp phân tích thiết kế hướng ñối tượng, áp dụng các mẫu
thiết kế ñể phân tích, thiết kế hệ thống quản lý thông tin tổng thể cho các
doanh nghiệp.




Từ kết quả phân tích và thiết kế tiến hành xây dựng hệ thống dựa trên các
công cụ và mơi trường đã lựa chọn.



Thực hiện triển khai và áp dụng hệ thống tại một ñơn vị.

3. Nội dung nghiên cứu và thực hiện của luận văn


Tổng quan về phát triển phần mềm và sử dụng lại



Nghiên cứu một số mẫu điển hình về hành vi và trình diễn cũng như các mẫu
điển hình của các ứng dụng doanh nghiệp.



Tổng quan về hệ thống hoạch ñịnh nguồn lực doanh nghiệp ERP.



Vận dụng mẫu thiết kế cũng như lý thuyết về ERP để tiến hành phân tích và
thiết kế Hệ thống quản lý thông tin tổng thể cho doanh nghiệp.




Xây dựng chương trình và tiến hành cài đặt thử nghiệm.


- 12 -

4. Tóm tắt cấu trúc của luận văn
Luận văn bao gồm các phần sau:
MỞ ðẦU: Giới thiệu lý do chọn ñề tài luận văn, nhu cầu thực tiễn và khả năng
ứng dụng của luận văn.
CHƯƠNG 1: Tổng quan về mơ hình sử dụng lại.
Chương này giới thiệu tổng quan về phần mềm sử dụng lại, giới thiệu tổng quan
về các mẫu thiết kế, giới thiệu chi tiết một số mẫu thiết kế điển hình về hành vi và
trình diễn hay ñược dùng trong các ứng dụng doanh nghiệp.
CHƯƠNG 2: Tổng quan về Hệ thống Hoạch ñịnh nguồn lực doanh nghiệp ERP.
Chương này giới thiệu tổng quan về hệ thống ERP, lịch sử hình thành cũng như
xu hướng phát triển, tiến hóa của ERP. Qua đó đưa ra được những khái niệm cũng như
cái nhìn tổng thể về hệ thống quản lý thông tin tổng thể của doanh nghiệp, phục vụ cho
việc phân tích, thiết kế hệ thống quản lý thông tin tổng thể ở chương 3.
CHƯƠNG 3: Ứng dụng các mẫu thiết kế ñể xây dựng các Phân hệ của hệ thống
Quản lý thông tin tổng thể doanh nghiệp.
Chương này mô tả việc cận dụng các mẫu thiết kế để phân tích, thiết kế và xây
dựng một số Phân hệ trong hệ thống Quản lý thông tin tổng thể cho doanh nghiệp.
CHƯƠNG 4: Cài ñặt
Chương này nêu các u cầu và mơi trường cài đặt, triển khai hệ thống. Giới
thiệu một số chức năng chính và đưa ra một số màn hình nhập liệu, báo cáo của
chương trình. Khả năng triển khai áp dụng chương trình trong thực tiễn.
KẾT LUẬN: Phần này nêu kết quả ñạt ñược của luận văn và ñề xuất phương
hướng nâng cấp và mở rộng ứng dụng ñề tài vào thực tiễn trong tương lai.



CHƯƠNG 1
TỔNG QUAN VỀ MƠ HÌNH SỬ DỤNG LẠI
1.1. Giới thiệu chung
Thiết kế phần mềm là một cơng đoạn quan trọng trong quy trình xây dựng và
phát triển phần mềm. Cũng như việc thiết kế phần mềm truyền thống, việc thiết kế
phần mềm hướng ñối tượng cần phải ñáp ứng được u cầu của bài tốn, song cũng
cần có tính tổng qt và linh hoạt đủ để có thể giải quyết một phần hoặc tồn bộ các
bài tốn có thể gặp trong tương lai.
Trong quá trình xây dựng và phát triển phần mềm, các thay đổi do u cầu từ
phía khách hàng, các ñiều kiện phát sinh hay việc thiết kế một cách cứng nhắc trong
quá trình thiết kế thường làm cho hệ thống trở nên rối rắm, các mô ñun càng ngày càng
bị phụ thuộc vào nhau. Sự phụ thuộc này làm cho phần mềm ngày càng trở nên phình
to và khó bảo trì, thậm chí dẫn đến thất bại.
Phương pháp lập trình hướng đối tượng ra đời góp phần giúp cho việc thiết kế
phần mềm trở nên dễ dàng và linh ñộng hơn. Thiết kế hướng ñối tượng cho phép theo
dõi và quản lý ñược sự phụ thuộc giữa các mơ đun trong kiến trúc của hệ thống.
Việc tìm cách áp dụng những mơ hình đã thành cơng trong thực tế đối với một số
bài tốn tương tự đã từng gặp và áp dụng những mơ hình đó vào thiết kế của mình mà
khơng cần phải xem xét lại từ đầu, đảm bảo tiết kiệm chí phí, thời gian xây dựng và
phát triển phần mềm, nâng cao ñộ tinh cậy và chất lượng phần mềm.
Năm 1995, Erich Gamma, Richard Helm, Join Vlissides, và Ralph Johnson
(Gang of Four - GOF) đã cơng bố cuốn sách của họ “Elements of reusable ObjectOriented Software” ñánh dấu sự ra ñời của “Mẫu thiết kế”. ðây là một bước tiến vô
cùng quan trọng ñối với việc thiết kế phần mềm hướng ñối tượng.

1.2. Tổng quan về các mẫu thiết kế
1.2.1. Mẫu thiết kế là gì ?
1.2.1.1. Các định nghĩa về mẫu thiết kế [4,9]
Mẫu thiết kế (Design Pattern) là một cặp giải pháp/vấn ñề ñược ñặt tên có thể áp
dụng trong những ngữ cảnh mới và những hướng dẫn để áp dụng nó trong
những tình huống mới như thế nào. [3]

Mẫu thiết kế khơng đơn thuần là một bước nào đó trong các giai đoạn phát triển
phần mềm mà nó đóng vai trị là sáng kiến để giải quyết một bài tốn thơng


- 14 dụng nào đó. Các giai đoạn phần mềm vẫn hồn chỉnh mà khơng có mẫu thiết
kế, nhưng sự góp mặt của mẫu thiết kế sẽ giúp cho việc xác định bài tốn cần
giải quyết nhanh gọn hơn, từ ñó ñưa ra cách giải quyết hợp lý. [9]
Mẫu thiết kế khơng chỉ được sử dụng để xác định bài tốn và cách giải quyết mà
cịn được sử dụng nhằm cơ lập các thay đổi trong mã nguồn, từ đó làm cho hệ
thống có khả năng tái sử dụng cao do mẫu thiết kế tuân thủ rất nghiêm ngặt các
nguyên lý thiết kế hướng ñối tượng. [9]
Việc xác ñịnh thế nào là một mẫu thiết kế phụ thuộc vào các nhìn nhận vấn đề
của mỗi người. Theo GOF, cách nhìn nhận phổ biến nhất về các mẫu thiết kế là coi
chúng giống như các mơ tả về các đối tượng phục vụ mục đích trao đổi thơng tin trong
q trình thiết kế ñã ñược hiệu chỉnh ñể giải quyết những yêu cầu thiết kế trong những
trường hợp nhất ñịnh.

1.2.1.2. Các thành phần của mẫu thiết kế [8,9]
Mỗi mẫu thiết kế trước tiên mơ tả một bài tốn mà ta gặp nhiều lần rồi mô tả
những yếu tố căn bản nhất để giải quyết bài tốn theo cách mà ta có thể áp dụng lại
nhiều lần. Dựa trên mô tả như trên về các mẫu thiết kế, ta thấy chúng bao gồm những
thành phần cơ bản sau:
Tên: Là tên gọi qua đó ta có thể mơ tả bài tốn cần giải quyết, giải pháp thực
hiện hay kết quả. Việc ñặt tên mẫu thiết kế cho phép mơ tả các bài tốn và giải
pháp một cách ngắn gọn. Tạo thành một ngôn ngữ trong cộng đồng những người
thiết kế. Ví dụ, khi núi ủn mu thit k Faỗade, ta hỡnh dung ngay đến mơ
hình thiết kế một đối tượng với vai trị giao dịch của một tập các thành phần nhỏ
hơn.
Bài toán: Cho phép xác định trong trường hợp nào thì áp dụng mẫu thiết kế
thơng qua mơ tả bài tốn và ngữ cảnh của bài tốn đó.

Giải pháp giải quyết bài tốn: Mơ tả những thành phần tạo nên mẫu thiết kế
(các lớp, các ñối tượng) cùng mối quan hệ, vai trò và cách thức phối hợp giữa
chúng (cấu trúc, thừa kế). Giải pháp khơng đề cập đến cách thức thiết kế hay
thực hiện cụ thể nào vì nó được áp dụng trong rất nhiều tình huống khác nhau.
Thay vào đó, giải pháp của mẫu thiết kế được mơ tả với tính khái quát cao với
cách thức tổ chức chung nhất của các thành phần trong việc giải quyết bài toán.


- 15 Ví dụ như mẫu thiết kế được gọi như một thành ngữ (mẫu GRASP), mẫu thiết kế
có thể mơ tả bằng lời hoặc mơ hình thiết kế hay bằng mã nguồn.
Hệ quả: Là những gì thu nhận được cùng với những yếu tố cần cân nhắc khi áp
dụng mẫu thiết kế để giải quyết bài tốn. Hệ quả thường khơng được đề cập khi
nói đến một mẫu thiết kế nhưng ñây là yếu tố quyết ñịnh khi cần chọn lựa hoặc
phân tích chi phí và lợi ích khi áp dụng các mẫu thiết kế.

1.2.2. Danh mục các mẫu thiết kế và phân loại [9]
Erich Gamma và các ñồng sự của ơng đề xuất 23 mẫu thiết kế, và ñã ñưa ra hai
tiêu chí ñể phân loại các mẫu thiết kế này. ðó là phân loại theo mục đích sử dụng
(purpose) và phạm vi áp dụng của mẫu (scope).
a. Theo mục đích sử dụng: Các mẫu thiết kế được phân thành 3 nhóm: mẫu
kiến tạo, mẫu cấu trúc, mẫu hành vi.
Mẫu kiến tạo (Creational Patterns): mẫu kiến tạo trừu tượng hố q trình khởi
tạo đối tượng. Các mẫu này giúp hệ thống khơng phải phụ thuộc vào cách một
đối tượng ñược tạo ra, xây dựng và thể hiện.
Mẫu thiết kế kiến tạo bao gồm các mẫu sau: Abstract Factory, Builder, Factory
Method, Prototype, Singleton.
Mẫu cấu trúc (Structural Patterns): mẫu thiết kế cấu trúc ñề cập ñến cách mà các
ñối tượng và lớp ñối tượng kết hợp ñể tạo nên một cấu trúc lớn hơn và hữu dụng
hơn. Việc thiết kế các lớp ñối tượng là nhằm ñáp ứng các ràng buộc cụ thể của
hệ thống. Mẫu cấu trúc mô tả mối quan hệ giữa các lớp này và sắp xếp sao cho

nếu có bất kì sự thay đổi nào với hệ thống đều khơng làm thay đổi những quan
hệ đó.
Mẫu thiết kế cấu trúc bao gồm các mẫu sau: Adapter, Bridge, Composite, Decorator,
Facade, Flyweight, Proxy.
Mẫu hành vi (Behavioral Patterns): mẫu hành vi mơ tả sự tương tác giữa các đối
tượng và cách chúng phân phối, cộng tác, ñể giải quyết một hay một nhóm trách
nhiệm nào đó.
Mẫu hành vi bao gồm các mẫu sau: Chain of Responsibility, Command, Interpreter,
Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor.


- 16 b. Theo phạm vi sử dụng: các mẫu thiết kế được phân thành 2 nhóm:
Phạm vi được nói ñến khi ta quyết ñịnh nên áp dụng mẫu thiết kế vào các lớp hay
các ñối tượng.
Mẫu thiết kế áp dụng cho Lớp (Class): các mẫu này mô tả và giải quyết mối
quan hệ giữa các lớp ñối tượng và lớp con của chúng. Các mối quan hệ này ñược
thiết lập qua cơ chế kế thừa và chỉ xảy ra ở thời điểm biên dịch chương trình
(compiler-time).
Các mẫu thuộc loại này bao gồm: Factory Method, Adapter (class), Interpreter,
Template Method.
Mẫu thiết kế áp dụng cho ðối tượng (Object): các mẫu này mơ tả và giải quyết
mối quan hệ giữa các đối tượng. Các mối quan hệ này có thể thay đổi tại thời
điểm chạy chương trình (run-time).
Các mẫu thuộc loại này bao gồm: Abstract Factory, Builder, Prototype, Singleton,
Adapter (object), Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of
Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Visitor.


- 17 -


1.2.3. Sơ ñồ mối quan hệ giữa các mẫu thiết kế [9]

Hình 1.1: Sơ đồ mối quan hệ giữa các mẫu thiết kế

1.3. Một số mẫu thiết kế ñiển hình trong các ứng dụng quản lý.
Với phạm vi thực hiện của luận văn, phần này chỉ tổng hợp và giới thiệu một số
mẫu thiết kế điển hình về hành vi và trình diễn hay được dùng trong các ứng dụng
quản lý doanh nghiệp như là các mẫu thiết kế dành cho lý luận nghiệp vụ (domain
logic) hoặc các mẫu về hành vi quan hệ của các ñối tượng hoặc cấu trúc quan hệ của
các ñối tượng.


- 18 -

1.3.1. Mẫu Quan sát
1.3.1.1. Ý nghĩa
Mẫu quan sát (Observer) ñịnh nghĩa mối quan hệ phụ thuộc một - nhiều giữa các
ñối tượng sao cho khi một ñối tượng thay đổi trạng thái thì tất cả các đối tượng liên
quan cũng sẽ được thơng báo và tự động cập nhật theo.

1.3.1.2. Mô tả
Việc phân chia hệ thống thành nhiều lớp con có quan hệ với nhau là nhu cầu tất
yếu để có thể duy trì sự bền vững của hệ thống. Chúng ta khơng bao giờ muốn cài đặt
hệ thống mà tất cả các lớp dính chặt lại với nhau, bởi vì điều này sẽ làm giảm tính tái
sử dụng lại của chúng.
Ví dụ, nhiều cơng cụ giao diện ñồ hoạ phân tách giao diện (GUI) ra khỏi dữ liệu
(Data) bên dưới. Các lớp ñịnh nghĩa cho giao diện và dữ liệu trên có thể kết hợp với
nhau để làm việc cũng như có thể được sử dụng 1 cách độc lập.
Mẫu Observer mơ tả cách thiết lập mối quan hệ này. Có hai đối tượng then chốt
trong mẫu này, đó là Subject và Observer. Một đối tượng Subject có thể có một hoặc

nhiều đối tượng Observer phụ thuộc vào nó. Tất cả các đối tượng Observer sẽ được
cảnh báo (notify) khi đối tượng Subject có sự thay đổi về trạng thái. Khi đó, các đối
tượng Observer sẽ lấy thơng tin về trạng thái của đối tượng Subject để tự cập nhật lại
trạng thái của chính nó.

1.3.1.3. Cấu trúc mẫu Observer

Hình 1.2: Cấu trúc mẫu Observer
Ở cấu trúc trên, khi khởi tạo một đối tượng thuộc lớp ConcreteObserver thì sự
khởi tạo này phải dựa trên ñối tượng thuộc lớp ConcreteSubject để lấy thơng tin trạng
thái hiện tại của đối tượng Subject. ðặc ñiểm của mẫu này là sự ánh xạ qua lại giữa


- 19 ñối tượng thuộc lớp Subject và các ñối tượng thuộc lớp Observer. ðối tượng
ConcreteObserver sẽ giữ con trỏ của ñối tượng ConcreteSubject. Ngược lại, lớp cha của
lớp ConcreteSubject (lớp Subject) sẽ giữ một mảng các con trỏ ñến lớp Observer (lớp cha
của lớp ConcreteObserver).

1.3.1.4. Biểu ñồ cộng tác
ðối tượng ConcreteSubject sẽ gửi thơng báo tới các đối tượng Observer của nó bất
cứ khi nào có sự thay đổi trạng thái của các ñối tượng Observer.
Sau khi xác nhận sự thay đổi trong đối tượng ConcreteSubject, đối tượng
ConcreteObserver có thể truy vấn thơng tin của các đối tượng Observer. ðối tượng
ConcreteObserver sử dụng thơng tin này để đồng bộ trạng thái của nó với các đối tượng
Observer đó.

Hình 1.3: Biểu đồ cộng tác của mẫu Observer

1.3.1.5. Các tình huống áp dụng
Mẫu Observer thường ñược áp dụng khi: Ứng dụng có mối quan hệ phụ thuộc,

đối tượng này phụ thuộc vào ñối tượng kia. Hoặc khi một sự thay ñổi ở ñối tượng này
dẫn ñến sự thay ñổi ở ñối tượng khác và chúng ta khơng biết chính xác có bao nhiêu
ñối tượng phải thay ñổi theo

1.3.1.6. Thuận lợi và hạn chế
Mẫu Observer giúp chúng ta sử dụng các ñối tượng chủ thể (Subject) và các ñối
tượng phụ thuộc vào trạng thái của nó (Observer) một cách độc lập.
Chúng ta có thể sử dụng lại những đối tượng chủ thể Subject mà khơng phải sử
dụng lại các đối tượng phụ thuộc trạng thái Observer của nó và ngược lại.


- 20 Chúng ta có thể thêm vào một hoặc nhiều đối tượng phụ thuộc trạng thái
(Observer) mà khơng phải sửa ñổi lại ñối tượng chủ thể Subject hoặc các ñối tượng
Observer phụ thuộc trạng thái khác.

1.3.2. Mẫu Thực hiện lệnh
1.3.2.1. Ý nghĩa
Mẫu Thực hiện lệnh (Command) dùng để đóng gói các u cầu khác nhau thành
từng đối tượng thực hiện lệnh riêng biệt, do đó cho phép tham số hố các tác vụ từ
client với đối tượng thực hiện lệnh khác nhau, ñưa vào hàng ñợi hoặc tệp tin sổ ghi
(log file) các yêu cầu, hỗ trợ việc phục hồi các tác vụ đã thực hiện.

1.3.2.2. Mơ tả
Mẫu này tạo ra các lớp lệnh Command giúp cho việc gọi thực hiện sau này ñược
dễ dàng. Mỗi lớp Command ñược ñịnh nghĩa tương ứng với một hành ñộng (action) của
một đối tượng nhận (receiver) nào đó (cịn gọi là một cặp action-receiver). Sau này, khi
muốn thực hiện lệnh nào, ta chỉ cần gọi thực hiện tương ứng với Command tương ứng.

1.3.2.3. Cấu trúc mẫu Command


Hình 1.4: Cấu trúc mẫu Command
Các thành phần tham gia vào cấu trúc Command:
Command: ðịnh nghĩa giao tiếp cho việc xử lý một tác vụ.
ConcreteCommand: ðịnh nghĩa kết nối giữa một ñối tượng nhận và một
tác vụ thực hiện.
Client: Tạo một ñối tượng ConcreteCommand và ñặt các đối tượng nhận cho
nó.
Invoker: Duyệt các Command để đưa ra các yêu cầu khi cần.


- 21 Receiver: nhận biết khi nào cần thực hiện tác vụ tương ứng với các yêu cầu
ñược gửi tới.

1.3.2.4. Biểu ñồ cộng tác của các ñối tượng tham gia vào mẫu

Hình 1.5: Biểu đồ cộng tác của mẫu Command
Client tạo các ñối tượng ConcreteCommand và xác ñịnh các ñối tượng nhận tương
ứng. ðối tượng Invoker lưu giữ các ñối tượng ConcreteCommand để có thể duyệt và đưa
ra các u cầu khi cần.

1.3.2.5. Các tình huống áp dụng
Có thể ứng dụng mẫu Command ñể xây dựng một thực ñơn bằng cách tạo một tập
hợp các Command tương ứng với các yêu cầu thực hiện các mục chọn trên thực ñơn…
Sử dụng mẫu này, ta có thể xây dựng các chức năng Phục hồi (undo), Thực hiện
lại (Redo),… bằng cách lưu lại các lệnh ñã ñược thực hiện vào một danh sách (queue,
history list, log,…). Sau đó, chỉ cần dựa theo danh sách này ñể Phục hồi hoặc Thực
hiện lại lệnh tương ứng. ðể làm ñược ñiều này, trong lớp ConcreteCommand (kế thừa từ
lớp Command) phải xây dựng sẵn chức năng Phục hồi của chính nó. Khi đó, một tập
hợp các lệnh ñã ñược thực hiện sẽ ñược Phục hồi bằng chức năng Thực hiện lại của
từng lệnh chứa trong nó.


1.3.2.6. Thuận lợi và hạn chế
Có thể dễ dàng thêm mới một Lệnh bởi vì chúng ta khơng phải sửa lại những lớp
cũ. Có thể tập hợp các Lệnh khác nhau lại thành một Lệnh tổng hợp.
Các đối tượng Command có thể ñược xử lý và kế thừa giống như các ñối tượng
khác


- 22 -

1.3.3. Mẫu Trạng thái
1.3.3.2. Ý nghĩa
Mẫu Trạng thái (State) cho phép đối tượng có thể tự điều chỉnh hành vi khi trạng
thái của nó thay đổi (hành vi của đối tượng phụ thuộc vào trạng thái của nó).

1.3.3.2. Mơ tả
Mẫu này dùng để mơ tả làm thế nào ñối tượng có thể tự ñưa ra các ứng xử khác
nhau tương ứng với mỗi trạng thái vào thời ñiểm chạy.
Mẫu này ñưa ra một lớp trừu tượng (Abstract) ñại diện cho các trạng thái của ñối
tượng trong ngữ cảnh hiện tại (Context), ở ñây ta gọi là lớp State. Lớp này cung cấp
giao diện chung cho tất cả các lớp ñại diện các trạng thái khác nhau của ngữ cảnh
Context. Các lớp con, kế thừa từ lớp State này (ConcreteStateA, ConcreteStateB, …), sẽ
cung cấp chi tiết các ứng xử tương ứng với trạng thái của nó. ðối tượng State có thể
truy xuất đối tượng Context khi cần thiết để nắm giữ các yêu cầu của ñối tượng Context.
Lớp Context sẽ giữ một biến ñối tượng trạng thái (một lớp con của lớp State sẽ
lưu giữ trạng thái hiện hành). Lớp Context sẽ uỷ nhiệm tất cả các lời gọi trạng thái ñến
cho biến ñối tượng này.

1.3.3.3. Cấu trúc mẫu State


Hình 1.6: Cấu trúc mẫu State
Các thành phần tham gia vào cấu trúc State:
Context: Chứa các yêu cầu, các phương thức từ phía Client. Lưu giữ một thể
hiện (instance) của trạng thái hiện hành (thuộc lớp ConcreteState).
State: Chứa các ứng xử có liên quan đến các trạng thái của đối tượng
Context.
ConcreteState: các lớp con cài ñặt các ứng xử tương ứng với các trạng thái
của ñối tượng Context trên.


- 23 -

1.3.3.4. Các tình huống áp dụng
Ứng xử của một ñối tượng phụ thuộc vào trạng thái của ñối tượng đó, ứng xử của
nó có thể thay đổi vào thời ñiểm chạy và phụ thuộc vào trạng thái lúc ñó.
Sự ñiều khiển có thể quá lớn và các nhánh trong cùng một cấu trúc ñiều kiện
If-else phụ thuộc vào các trạng thái khác nhau của ñối tượng. Mẫu này sẽ tách mỗi
nhánh của cấu trúc ñiều kiện trên thành một lớp riêng biệt, do đó có thể xử lý các trạng
thái của đối tượng một cách độc lập, khơng phụ thuộc nhiều vào các ñối tượng khác.

1.3.3.5. Thuận lợi và hạn chế
Những đối tượng State có thể được chia sẻ. Hệ thống sử dụng các ñối tượng state
chia sẽ nhằm làm tăng tính linh hoạt và dễ nâng cấp, thay ñổi sau này.
Sử dụng mẫu này làm cho các sự chuyển ñổi trạng thái trong hệ thống ñược rõ
ràng.

1.3.4. Mẫu Phương thức tiêu bản
1.3.4.1. Ý nghĩa
Mỗi thuật toán bao gồm một tập các hành ñộng theo một thứ tự xác ñịnh và mỗi
hành ñộng sẽ ñược cài ñặt khác nhau tuỳ thuộc vào các thể hiện khác nhau của ñối

tượng. Mẫu Phương thức tiêu bản (Template Method) giúp chúng ta ñịnh nghĩa thứ tự
các hành ñộng này và cho phép các lớp con của nó định nghĩa lại các hành ñộng tuỳ
thuộc vào ngữ cảnh cụ thể.

1.3.4.2. Cấu trúc mẫu

Hình 1.7: Cấu trúc mẫu Template Method


- 24 Các thành phần tham gia vào cấu trúc mẫu Template Method:
Lớp AbstractClass là lớp trừu tượng ñịnh nghĩa khung của thuật toán trong
phương thức mẫu (Template Method).
Lớp ConcreteClass cài ñặt cách thực hiện các hành vi cụ thể
(PrimitiveOperation). Trong phương thức mẫu, các hành vi cụ thể sẽ ñược
thực hiện theo một thứ tự nhất ñịnh. Mỗi lớp con có một cách cài đặt cách
thực hiện các hành vi cụ thể này khác nhau.

1.3.4.3. Các tình huống áp dụng
Sử dụng mẫu Template Method khi cần ñịnh nghĩa thứ tự của một thuật toán và
chuyển cho các lớp con thực thi những hành vi cụ thể của thuật toán. Lớp cha sẽ cài
ñặt các hành vi chung, các lớp con sẽ kế thừa và sử dụng lại các phương thức này và
chỉ cần cài ñặt lại các hành vi riêng của nó.

1.3.4.4. Thuận lợi và hạn chế
Sử dụng mẫu này, các phương thức chung ñược cài ñặt ở lớp cha, các lớp con chỉ
cần kế thừa và sử dụng mà khơng cần cài đặt lại. ðiều này giúp tránh ñược sự trùng
lắp mã chương trình.
Mẫu này thường ñược sử dụng trong các lớp thư viện dùng ñể gọi các hàm hook.
ðây là những hàm có sẵn trong các thư viện cho phép người dùng kế thừa và cài ñặt
lại.


1.3.5. Mẫu Chuỗi các trách nhiệm
1.3.5.1. Ý nghĩa
Mẫu Chuỗi các trách nhiệm cho phép đối tượng gửi u cầu (Sender), có thể
khơng cần biết đến đối tượng sẽ nhận u cầu ñó (Receiver), bằng cách thêm vào các
ñối tượng một phương thức để có thể nắm giữ u cầu. Các đối tượng sẽ được tổ chức
thành một chuỗi mắt xích, u cầu được gửi sẽ được duyệt theo chuỗi mắt xích này
cho đến khi có một đối tượng trong mắt xích nhận lấy u cầu của nó.

1.3.5.2. Mơ tả
Mẫu này tổ chức hệ thống các ñối tượng thành một chuỗi mắt xích từ cụ thể đến
tổng qt. Mỗi đối tượng trong mắt xích này sẽ được cung cấp một phương thức ñể có
thể nắm giữ và xử lý yêu cầu. Yêu cầu sẽ được trượt qua chuỗi mắt xích này theo thứ
tự, từng đối tượng trong mắt xích sẽ được nhận u cầu. Nếu đúng là u cầu dành cho
nó thì nó sẽ xử lý, nếu khơng u cầu sẽ tiếp tục gửi đi cho các mắt xích đằng sau nó.


×