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

Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics

71 505 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 71
Dung lượng 2,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Từ nhu cầu thực tiễn xã hội và đặc biệt là của Công ty TNHH Sungnam Knitting Mills, 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 quá trình thiết kế ph

Trang 1

- 1 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

- -

Trần Thị Xuân Hương

MẪU THIẾT KẾ VÀ ỨNG DỤNG PHÁT TRIỂN HỆ THỐNG THÔNG TIN QUẢN LÝ XUẤT NHẬP VÀ TỒN KHO TRONG HOẠT

ĐỘNG LOGISTICS

Chuyên ngành : Khoa học máy tính

Luận văn thạc sĩ Khoa học máy tính

Trang 2

- 2 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Thái Nguyên, 2012

MỞ ĐẦU

1 Cơ sở khoa học và thực tiễn của đề tài

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, 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ũng như việc thiết kế phần mềm nói

chung, việc thiết kế phần mềm hướng đối tượng cần hướng tới việc sử dụng

lại nhằm giảm bớt chi phí thực hiện và tăng tính hiệu quả

Cùng với sự phát triển nền kinh tế theo hướng toàn cầu hóa, Logistics

ra đời và phát triển rất nhanh chóng và mang lại kết quả rất tốt đẹp ở nhiều nước trên thế giới

Từ nhu cầu thực tiễn xã hội và đặc biệt là của Công ty TNHH Sungnam Knitting Mills, 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 quá trình thiết kế phần mềm, luận văn đã chọn đề

tài “Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất

nhập và tồn kho trong hoạt động logistics”

2 Đối tƣợng và phạm vi nghiên cứu

- Đối tượng nghiên cứu: Đề tài tập trung nghiên cứu về các mẫu thiết kế

và hệ thống kho trong hoạt động logistics

- Phạm vi nghiên cứu: Đề tài chỉ tập trung tìm hiểu các mẫu thiết kế trong kỹ nghệ hướng đối tượng và ứng dụng để phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong dây chuyền hoạt động logistics

3 Mục tiêu nghiên cứu của đề tài

- Tổng quan về các mẫu thiết kế trong kỹ nghệ hướng đối tượng

- Đặc tả các hoạt động của hệ thống kho trong dây chuyền logistics

Trang 3

- 3 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Thiết kế hệ thống quản lý kho liên quan đến việc xuất nhập và tồn kho trong dây chuyền hoạt động logistics dựa vào việc sử dụng lại các mẫu

- Xây dựng chương trình thử nghiệm quản lý xuất nhập và tồn kho

4 Những nội dung nghiên cứu chính

MỞ ĐẦU: Giới thiệu cơ sở khoa học và thực tiễn của đề tài, đối tượng và

phạm vi nghiên cứu của đề tài

CHƯƠNG 1: Tổng quan về mẫu thiết kế trong kỹ nghệ hướng đối tượng và

hoạt động logistics

Trong chương này trình bày mẫu thiết kế, phân tích và thiết kế hướng mẫu trong công nghệ hướng đối tượng và vai trò của logistics đối với doanh nghiệp, xu hướng phát triển của logistics và vai trò của mẫu thiết kế trong việc phát triển các hệ thống quản lý hoạt động logistics

CHƯƠNG 2: Một số vấn đề về ứng dụng các mẫu thiết kế trong quá trình

phát triển HTTT quản lý

Trong chương này trình bày về một số mẫu điển hình về hành vi, trình diễn, ứng dụng của các mẫu thiết kế vào các bài toán cụ thể

CHƯƠNG 3: Cài đặt ứng dụng bài toán xuất nhập và tồn kho

Trong chương này trình bày về bài toán xuất nhập và tồn kho trong hoạt động logistics, phạm vi của bài toán và ứng dụng mẫu thiết kế vào bài toán quản lý hoạt động logistics và cài đặt ứng dụng

KẾT LUẬN: Đánh giá kết quả

Trang 4

- 4 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƯƠNG I TỔNG QUAN VỀ MẪU THIẾT KẾ TRONG KỸ NGHỆ HƯỚNG ĐỐI

TƯỢNG VÀ HOẠT ĐỘNG LOGISTICS

1.1 Mẫu thiết kế

Năm 1995, Erich Gamma, Richard Helm, Join Vlissides và Ralph Johnson (Gang of Four - GOF) đã công bố cuốn sách “Elements of reusable Object – Oriented 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

Ý tưởng của mẫu phần mềm được phát triển rất đa dạng Kiến trúc sư Christopher Alexander trường đại học California ở Berkeley là người phát triển nền tảng của mẫu Từ “mẫu” đã gần như gắn liền với sự nghiệp hoạt động của giáo sư Giáo sư và nhóm nghiên cứu của ông đã mất khoảng hơn

20 năm để phát triển một cách tiếp cận tới các kiến trúc thông thường có sử dụng các mẫu Alexander đã giới thiệu hơn 250 mẫu với nhiều mức độ trừu tượng từ kiến trúc của một thành phố đến các thiết kế phòng Kiến trúc sư đã thành lập khung mẫu miêu tả cơ bản của một mẫu như một giải pháp của vấn

đề ở mức ngữ cảnh Ông đã phát triển một nguyên mẫu từ các mẫu dùng trong công việc của ông về kiến trúc

Kent Beck và Ward Cunningham đã rất say mê áp dụng ý tưởng của Alexander để phát triển các mẫu phần mềm Họ đã tập hợp các mẫu đầu tiên nói về đặt tả giao diện người dùng Kent tập trung vào các thành ngữ cho Smalltalk và Ward diễn đạt kinh nghiệm của mình bằng các hệ thống nghiệp

vụ (hệ thống kế toán)

Trang 5

- 5 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Erich Gamma đã xuất bản ấn phẩm đầu tiên về vấn đề sử dụng các mẫu trong phát triền phần mềm năm 1991 Cuốn sách được viết ở Đức, nhưng cuốn sách này không được chú ý nhiều Bruce Anderson là một trong những nhà lãnh đạo trong cộng đồng mẫu Ông thành lập ngân hàng mẫu ở OOPSLA vào đầu những năm 1990 Jim Coplien miêu tả thành ngữ trên C++ trong quyển lập trình C++ tiên tiến Theo một cách nào đó, những thành ngữ này có liên quan tới ý tưởng của những giải pháp cung cấp tài liệu cho những vấn đề thường xuyên Một nhóm có tên là Hillside Group được hình thành nhằm khai thác sâu hơn những ý tưởng này và thúc đẩy sử dụng mẫu trong quá trình phát triển phần mềm Họ xây dựng mẫu nhằm dẫn dắt và hỗ trợ những thành viên mới trong cộng đồng mẫu Nhóm này được hình thành đầu tiên với tên PLOP vào năm 1994

Những kiến trúc cơ bản của quá trình phát triển mẫu được Gang of Four (GOF) xuất bản trong cuốn “Những mẫu thiết kế” Những phần tử của phần mềm hướng đối tượng đã được giới thiệu và được miêu tả dễ hiểu với mẫu thiết kế hướng đối tượng Erich Gamma, Richard Helm, Ralph Johnson

và John Vlissides là đại diện cho lĩnh vực phân loại những giải pháp thiết kế

và việc sử dụng thông thường dùng bên trong mẫu hướng đối tượng Họ xây dựng một tập hợp gồm 23 mẫu chia làm 3 phạm trù: theo hành vi, theo cấu trúc và theo tạo sinh

Peter Coad gần đây cũng nghiên cứu về các mẫu hướng đối tượng Trong đó, ông đã mô tả 7 loại mẫu cơ bản trong phân tích và thiết kế hướng đối tượng Ông làm việc dựa trên các mẫu, tức là nhờ vào việc phân tích một ứng dụng của miền đã được đưa ra và sử dụng công nghệ hướng đối tượng để xây dựng các ứng dụng Douglas Schmidt cũng là một người dẫn dắt những

Trang 6

- 6 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

người mới tham gia vào lĩnh vực dùng mẫu Ông là tác giả của rất nhiều mẫu trong lĩnh vực các hệ thống truyền thông và các ứng dụng phân tán

Douglas Schmidt đã làm việc trên mẫu về các ứng dụng cho vấn đề phát triển khung làm việc Ông đã tạo ra các yếu tố cơ bản của cấu trúc vào trong các siêu mẫu được sử dụng để phát triển các khung làm việc và điền địa chỉ Hot-Sport và Hooks/templates tiếp cận trong việc phát triển khung làm việc

Kiến trúc phần mềm hướng mẫu: Một hệ thống mẫu còn được gọi

“Gang of Four” hướng vào việc sử dụng các mẫu ở kiến trúc trong quá trình phát triển phần mềm Nhiều tác giả phân loại các mẫu phần mềm thành mẫu kiến trúc, mẫu thiết kế và thành ngữ Hầu hết sự đóng góp của họ được hướng

về khía cạnh mẫu kiến trúc Những quyển sách của họ cùng với những quyển sách của GOF đánh dấu điểm bắt đầu của những người mới trong cộng đồng mẫu

1.1.1 Khái niệm mẫu thiết kế

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 [5]

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 toán thông dụng nào đó Các giai đoạn phần mềm vẫn hoà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 toán cần giải quyết nhanh gọn hơn, từ đó đưa ra cách giải quyết hợp lý.[7] Mẫu thiết kế không chỉ được sử dụng để xác định bài toá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ừ đó

Trang 7

- 7 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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 [7]

Việc xác định thế nào là một mẫu thiết kế phụ thuộc vào cách nhìn nhận vấn đề của mỗi người Theo GOF, cách nhìn nhận phổ biến 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 quá 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.2 Các thành phần của mẫu thiết kế

Mỗi mẫu thiết kế trước tiên mô tả một bài toá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 toá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 như sau:

 Tên mẫu (Design pattern name): là tên gọi qua đó ta có thể mô tả bài toán cần giải quyết, giải pháp thực hiện kết quả Việc đặt tên mẫu thiết kế cho phép mô tả các bài toá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 mẫu thiết kế “Facade”, ta hình dung ngay đến mô hình thiết kế một đối tượng với vai trò “interface” của một tập các thành phần nhỏ

 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 toán và ngữ cảnh của bài toán đó

 Giải pháp giải quyết bài toá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

Trang 8

- 8 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

trong việc giải quyết bài toán 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 toá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 Phân tích và thiết kế hướng mẫu trong công nghệ hướng đối tượng

Phân tích và thiết kế hướng mẫu (Pattern – Oriented Analysis and Design - POAD) là một cách tiếp cận kiến trúc cấu thành nhằm gắn kết các mẫu ở mức thiết kế Nó sử dụng các khái niệm của cấu trúc các mẫu thiết kế như là các thành phần thiết kế với các giao diện

Phân tích và thiết kế hướng mẫu dựa trên tiền đề là: tại một mức thiết

kế nào đó, người ta biết các mẫu có thể sử dụng được trong ứng dụng và nó thực sự không lấn át công việc của người thiết kế với những chi tiết của thiết

kế bên trong mỗi mẫu

1.2.1 Vai trò của mẫu trong phát triển phần mềm

Khi sự phức tạp của hệ thống phần mềm gia tăng, chúng ta tìm kiếm cách tiếp cận để làm đơn giản hóa sự phát triển của các ứng dụng phần mềm Các mẫu thiết kế hứa hẹn sớm đem lại lợi ích của việc tái sử dụng trong vòng đời phát triển Để có được lợi ích trong quá trình triển khai những giải pháp thiết kế đã được khẳng định này, chúng ta cần phải định nghĩa các kỹ thuật cấu thành thiết kế để xây dựng ứng dụng sử dụng các mẫu Những mô hình thiết kế linh hoạt cần phải được phát triển để hỗ trợ cho kỹ thuật này

Trang 9

- 9 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Tái sử dụng phần mềm trong ứng dụng thực tế là một nhiệm vụ khó Nó thật sự quan trọng để giảm bớt công sức phát triển và đảm bảo chất lượng phần mềm cao hơn Các mẫu thiết kế có tác dụng thúc đẩy trong việc sử dụng lại các sản phẩm trong pha thiết kế, bởi vì chúng cung cấp một tập hợp các từ vựng thông thường cho thiết kế Chúng còn cung cấp một ngữ nghĩa giúp cho việc hiểu các thiết kế và chúng chỉ ra các khối xây dựng từ các ứng dụng phức tạp hơn đã được xây dựng Sự tập hợp từ nhiều danh mục mẫu sẵn có đã khuyến khích hình thành các ý tưởng xa hơn về việc làm sao để sử dụng những giải pháp có thể tin cậy được để phát triển các ứng dụng Các nhà nghiên cứu và thiết kế có kinh nghiệm đã mất nhiều công sức trong việc làm tài liệu có chất lượng cao trong thiết kế phần mềm như những mẫu thiết kế

1.2.2 Mục đích của việc phân tích thiết kế hướng mẫu

Khi yêu cầu về các hệ thống phần mềm tăng, các nhà nghiên cứu cũng như các nhà thực hành đã tìm kiếm các phương pháp luận và công nghệ để tự động hóa quá trình sản xuất phần mềm và làm thuận lợi quá trình bảo trì hệ thống Những công nghệ này xuất hiện gần đây bao gồm các mẫu thiết kế và các khung làm việc Trường hợp đặc biệt, trong cùng một khoảng thời gian chúng ta nhận thấy sự cần thiết của một phương pháp luận phát triển để phát triển các hệ thống phức tạp với qui mô lớn và học được kinh nghiệm của các nhà thiết kế hệ thống khác trong việc giải quyết các vấn đề lặp lại của thiết kế

Tài liệu của mẫu thiết kế miêu tả chi tiết về một mẫu như: cách dùng, cấu trúc, hành vi của những người tham gia, những phần tử và những nguyên tắc chỉ đạo cho việc triển khai Chúng ta hiểu lỗi là gì, làm sao để biên soạn những mẫu này để phát triển các ứng dụng Một hệ thống hoàn chỉnh không thể và cũng không bao giờ được xây dựng từ một mẫu đơn

Trang 10

- 10 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Chúng ta có thể soạn các mẫu ở cùng một mức của lớp hoặc một mức của đối tượng Các mô hình lớp trình bày khía cạnh triển khai và bảo trì của một mẫu Trong khi các mô hình lớp trình bày khía cạnh triển khai và bảo trì của một mẫu Trong khi các mô hình đối tượng trình bày về sự thực hiện, hành vi và khía cạnh vai trò Các nhà nghiên cứu và các nhà thực thi quan tâm tới vấn đề kết hợp sử dụng vai trò các mẫu và mô hình nghiệp vụ Các vấn đề của soạn mẫu như các lớp thành phần ít được chú ý hơn

Mục đích của phân tích và thiết kế hướng mẫu là đẩy mạnh quá trình phát triển trên nền mẫu Chúng ta đang tìm kiếm những cách sao cho nhiều nhà thiết kế sử dụng nhiều các mẫu hơn Chúng ta muốn thu hút những nhà thiết kế mới để giúp họ sử dụng các mẫu một cách đơn giản theo từng tiến trình của họ Đẩy mạnh sự phát triển trên nền mẫu, chúng ta cần định nghĩa những cách tiếp cận cấu thành dễ sử dụng

Phát triển các cách tiếp cận có hệ thống để gắn kết các mẫu: một nhu cầu ngày càng cấp thiết là phát triển những cách tiếp cận các thành phần một cách hệ thống nhằm làm đơn giản hóa quá trình kết hợp các mẫu Các mô hình làm đơn giản quá trình kết hợp giữa các mẫu trong pha thiết kế phải được phát triển để hỗ trợ cho cách tiếp cận này

Cải thiện chất lượng thiết kế: Các mẫu thiết kế là những thiết kế có chất lượng tốt Việc sử dụng lại những mẫu trong một thiết kế được định trước để cải thiện chất lượng thiết kế của các ứng dụng phần mềm được xây dựng nhờ

sử dụng những mẫu như những khối hợp nhất cơ bản của họ

1.2.3 Những vấn đề thiết kế hướng mẫu

Để thúc đẩy sự phát triển của các mẫu cơ sở và xây dựng các cách tiếp cận mới để biên soạn các mẫu thì chúng ta còn phải đương đầu với rất nhiều thách thức

Trang 11

- 11 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Cái gì là cơ sở để phân loại mẫu như một thành phần thiết kế? Để sử dụng các mẫu như là một khối hợp nhất chúng ta cần phải tìm ra các đặc trưng mà mẫu được phân loại như một thành phần thiết kế Làm sao chúng ta

có thể định nghĩa những giao diện mẫu cho mục đích hợp nhất với các mẫu khác Chúng ta có thể biên soạn những ứng dụng đơn độc từ các mẫu thiết kế? Nhiều ứng dụng sử dụng một hoặc nhiều mẫu trong thiết kế Thách thức ở đây

là liệu các ứng dụng có thể xây dựng bằng cách kết hợp các mẫu thiết kế không? Giao diện của các mẫu này như thế nào? Giao diện của các mẫu là gì?

và giao diện nào không thích ứng với những vấn đề có thể xuất hiện? Các loại mẫu gì được sử dụng? Chúng ta phát triển các ứng dụng có sử dụng các mẫu thiết kế một cách hệ thống như thế nào? Có tiến trình thiết kế tốt để phát triển các ứng dụng sử dụng các mẫu đã thiết kế như những khối hợp nhất không?

1.3 Phân loại mẫu thiết kế

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 và phạm vi áp dụng của mẫu

1.3.1 Phân loại 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óa quá 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

Trang 12

- 12 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

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, Façade, 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

1.3.2 Phân loại theo phạm vi sử dụng

Các mẫu thiết kế được chia làm 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

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

Các mẫu thuộc loại này bao gồm: Abstract Factory, Builder, Prototype, Singleton, Adapter (Object), Bridge, Composite, Decorator, Façade,

Trang 13

- 13 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Flyweight, Proxy, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy, Visitor

Trang 14

- 14 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

1.4 Sơ đồ mối quan hệ giữa các mẫu thiết kế

1.5 Tổng quan về Logistics

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

Trang 15

vụ

Logistics được phát triển qua 3 giai đoạn:

* Giai đoạn 1: Phân phối vật chất

Vào những năm 60, 70 của thế kỷ 20, người ta đã bắt đầu quan tâm đến vấn đề quản lý một cách có hệ thống những hoạt động có liên quan với nhau như vận tải, phân phối, bảo quản hàng hóa, quản lý tồn kho, bao bì đóng gói, phân loại,… để đảm bảo phân phối sản phẩm, hàng hóa cho khách hàng một cách có hiệu quả Những hoạt động đó được gọi là phân phối sản phẩm vật chất hay còn có tên gọi là logistics đầu ra

* Giai đoạn 2: Hệ thống Logistic

Những năm 80, 90 của thế kỷ 20, các công ty tiến hành kết hợp quản lý

2 mặt: đầu vào(cung ứng vật tư) với đầu ra (phân phối sản phẩm) để tiết kiệm chi phí, tăng thêm hiệu quả của quá trình này, được gọi là hệ thống logistics

* Giai đoạn 3: Quản trị chuỗi cung ứng

Quản trị chuỗi cung ứng là một khái niệm mang tính chiến lược về quản trị chuỗi nối tiếp các hoạt động từ người cung cấp – đến người sản xuất – khách hàng tiêu dùng sản phẩm, Logistics phát triển quá nhanh chóng, trong nhiều ngành, nhiều lĩnh vực, ở nhiều nước Chính vì vậy, cho đến nay vẫn chưa có một khái niệm thống nhất về logistics

Trang 16

- 16 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

1.5.1 Khái niệm về logistics

Trong lĩnh vực sản xuất: logistics là cung ứng, là chuỗi hoạt động

nhằm đảm bảo nguyên nhiên vật liệu, máy móc, thiết bị, các dịch vụ cho hoạt động tổ chức doanh nghiệp được tiến hành liên tục, nhịp nhàng và có hiệu quả; bên cạnh đó còn tham gia vào quá trình phát triển sản phẩm mới

Dưới góc độ quản trị chuỗi cung ứng: logistics là quá trình tối ưu hóa

về vị trí lưu trữ và chu chuyển các tài nguyên/yếu tố đầu vào từ điểm xuất phát đầu tiên là nhà cung cấp, qua nhà sản xuất, người bán buôn, bán lẻ, đến tay người tiêu dùng cuối cùng, thông qua hàng loạt các hoạt động kinh doanh

Theo giáo sư Martin Christopher: “Logistics là quá trình quản trị chiến

lược thu mua, di chuyển và dự trữ nguyên liệu, bán thành phẩm, thành phẩm (và dòng thông tin tương ứng) trong một công ty và qua các kênh phân phối của công ty để tối đa hóa lợi nhuận hiện tại và tương lai thông qua việc hoàn tất các đơn hàng với chi phí thấp nhất”

Theo quan điểm “5 right” thì: “Logistics là quá trình cung cấp đúng

sản phẩm đến đúng vị trí, vào đúng thời điểm với điều kiện và chi phí phù hợp cho khách hàng tiêu dùng sản phẩm”

Theo nhóm tác giả của cuốn sách “Logistics– những vấn đề cơ bản” thì

logistics được định nghĩa như sau: “Logistics là quá trình tối ưu hóa về vị trí

và thời điểm, vận chuyển và dự trữ nguồn tài nguyên từ điểm đầu tiên của chuỗi cung ứng qua các khâu sản xuất phân phối cho đến tay người tiêu dùng cuối cùng, thông qua hàng loại các hoạt động kinh tế.”

1.5.2 Vai trò của logistics đối với các doanh nghiệp

Logistics giúp giải quyết cả đầu ra lẫn đầu vào của doanh nghiệp một cách hiệu quả

Trang 17

- 17 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Logistics góp phần nâng cao hiệu quả quản lý, giảm thiểu chi phí nhằm nâng cao năng lực cạnh tranh của doanh nghiệp

Logistics còn góp phần giảm phí thông qua việc tiêu chuẩn hóa chứng

từ

Ngoài ra, logistics còn hỗ trợ đắc lực cho hoạt động marketing: Logistics đóng vai trò then chốt trong việc đưa sản phẩm đến đúng nơi cần đến, vào đúng thời điểm thích hợp

1.5.3 Xu hướng phát triển của logistics

Logistics đang phát triển theo 3 xu hướng chính sau:

- Xu hướng thứ nhất: ứng dụng công nghệ thông tin, thương mại điện tử ngày càng phổ biến và sâu rộng hơn trong các lĩnh vực của logistics như: hệ thống thông tin Quản trị chuỗi cung ứng toàn cầu, công nghệ nhận dạng bằng tần số Radio…

- Xu hướng thứ hai: phương pháp quản lý logistics kéo ngày càng phát triển mạnh mẽ và dần thay thế cho phương pháp logistics đẩy theo truyền thống

Phương pháp đẩy: là phương pháp tổ chức sản xuất theo dự báo nhu cầu thị trường Phương pháp này tạo ra hàng tồn kho và “đẩy” hàng ra thị trường để đáp ứng nhu cầu thực tế Ưu điểm của phương pháp này là đơn giản, dễ thực hiện, có nhiều thời gian để sản xuất, hạ giá thành sản phẩm nhờ phát huy tính kinh tế về quy mô và đường cong kinh nghiệm (là hiện tượng kỹ năng của người lao động tăng lên dẫn đến tăng năng suất lao động) Nhược điểm: tạo ra khối lượng hàng tồn lớn, chu kỳ sản xuất dài, chi phí dự trữ cao Phương pháp này đòi hỏi lượng vốn lưu động lớn, vòng quay chậm

Phương pháp kéo: hoạch định sản xuất dựa trên nhu cầu và đơn hàng thực tế của thị trường, có nghĩa là nhu cầu của khách hàng “kéo” hàng từ sản xuất về phía thị trường Ưu điểm: giảm thiểu khối lượng và chi phí hàng tồn

Trang 18

- 18 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

kho, rút ngắn chu trình sản xuất, nhờ đó giảm vốn lưu động, tăng vòng quay vốn, phản ứng nhanh và hiệu quả hơn với những thay đổi của thị trường Tuy nhiên, phương pháp này đòi hỏi phải có khả năng phản ứng nhanh trước những yêu cầu của thị trường, tổ chức linh hoạt, phải tổ chức và quản lý tốt hệ thống thông tin, chu trình sản xuất được quản lý chặt chẽ, khoa học, có khả năng đáp ứng được yêu cầu nghiêm ngặt về tiến độ, thời gian giao hàng,…

- Xu hương thứ ba: thuê dịch vụ logistics từ các công ty logistics chuyên nghiệp ngày càng phổ biến

Trên thế giới, logistics đã và đang phát triển mạnh mẽ Ở Việt Nam logistics đã bắt đầu được nhìn nhận như một công cụ “sắc bén” đem lại thành công cho các doanh nghiệp trong điều kiện hội nhập và chắc chắn logistics sẽ phát triển trong tương lai không xa

1.5.4 Vai trò của các mẫu thiết kế trong việc phát triển các hệ thống quản lý hoạt động logistics

Hệ thống quản lý có xu thế được phát triển với cường độ mạnh khi sử dụng các công nghệ kỹ thuật mới: ứng dụng công nghệ tiên tiến như sử dụng

kỹ nghệ hướng đối tượng, công cụ mô hình hóa UML và “mẫu” trong thiết kế cũng như ứng dụng công nghệ web để cập nhật và xử lý thông tin

Cũng nhờ vậy, việc thiết kế hệ thống dựa trên các nguyên tắc “hướng mẫu” nhằm bảo đảm trước hết có được một hệ thống quản lý chất lượng các hoạt động logistics, sau đó cho phép hệ thống dễ bảo trì, dễ mở rộng trong tương lai, đáp ứng được các yêu cầu phức tạp, có nhiều thay đổi và yêu cầu phát triển ngày càng cao của xã hội Hệ thống logistics được xây dựng trên cơ

sở như thế sẽ được áp dụng ngày càng rộng rãi trong các tổ chức và doanh nghiệp có kết nối mạng máy tính

Trang 19

- 19 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Trang 20

- 20 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƯƠNG II MỘT SỐ VẤN ĐỀ VỀ ỨNG DỤNG CÁC MẪU THIẾT KẾ TRONG

QUÁ TRÌNH PHÁT TRIỂN HTTT QUẢN LÝ

Không thể có một mẫu nào có thể vận dụng tốt cho mọi trường hợp Mỗi mẫu có những đặc thù riêng, có thể áp dụng trong quá trình phát triển một HTTT trong những ngữ cảnh cụ thể Việc làm rõ ý nghĩa, cấu trúc và phạm vi sử dụng của mỗi loại mẫu là rất quan trọng nhằm giúp các nhà thiết

kế hệ thống có được những quyết định đúng trong việc chọn lựa các mẫu thích hợp, hướng tới chất lượng quản lý các hoạt động sản xuất, kinh doanh, đặc biệt là các hoạt động logistics Dưới đây, chúng ta sẽ xét một số mẫu điển hình theo các phương diện nêu trên

2.1 Một số mẫu điển hình về hành vi, trình diễn và cấu trúc

2.1.1 Mẫu chế tạo trừu tượng (Abstract Factory Pattern)

Mẫu chế tạo trừu tượng cung cấp một giao diện có chức năng tạo ra một tập hợp các đối tượng liên quan hoặc phụ thuộc lẫn nhau mà không chỉ ra

đó là những lớp cụ thể nào tại thời điểm thiết kế

Về bản chất, mẫu chế tạo trừu tượng chỉ khác mẫu chế tạo ở chỗ bản thân đối tượng Factory không được chỉ ra cụ thể tại thời điểm thiết kế Nó là một giao diện hoặc lớp trừu tượng (Interface, abstract) Nếu như mẫu chế tạo phân loại đối tượng dựa trên tham số đầu vào thì đối với mẫu chế tạo trừu tượng, thủ tục createObject() còn phụ thuộc vào các yếu tố phụ khác như môi trường hệ điều hành Ứng với mỗi yếu tố phụ thứ hai ta có một lớp Factory cụ thể

Trang 21

- 21 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

* Cấu trúc của mẫu

Trong đó:

AbstractFactory: là lớp trừu tượng, tạo ra các đối tượng thuộc 2 lớp trừu

tượng là: AbstractProductA và AbstractProductB

ConcreteFactoryX: là lớp kế thừa từ AbstractFatory, lớp này sẽ tạo ra

một đối tượng cụ thể

AbstractProduct: là các lớp trừu tượng, các đối tượng cụ thể sẽ là các

thể hiện của các lớp dẫn xuất từ lớp này

* Phạm vi ứng dụng mẫu

Hình 2.1 Cấu trúc của mẫuAbstract Factory

Trang 22

- 22 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

 Phía trình khách sẽ không phụ thuộc vào việc những sản phẩm được tạo

ra như thế nào

 Ứng dụng sẽ được cấu hình với một hoặc nhiều họ sản phẩm

 Các đối tượng cần phải được tạo ra như một tập hợp để có thể tương thích với nhau

 Chúng ta muốn cung cấp một tập các lớp và chúng ta muốn thể hiện các ràng buộc, các mối quan hệ giữa chúng mà không phải là các thực thi của chúng(interface)

* Nhận xét

Một trong những vấn đề gặp phải là khung giao diện Abstract Factory thường hay bị sửa đổi, ví dụ như bổ sung thủ tục chẳng hạn, khi đó các lớp cụ thể thực thi giao diện này phải được dịch và triển khai lại Để giảm nhẹ vấn đề này người ta thường thiết kế giao diện Abstract Factory một cách linh hoạt

2.1.2 Mẫu Builder Pattern

Phân tách những khởi tạo các thành phần của một đối tượng phức hợp,

để có thể cùng một khởi tạo mà có thể tạo nên nhiều định dạng khác khau Builder Pattern sử dụng để xây dựng sản phẩm phù hợp với các mô hình tổng hợp, mô hình cấu trúc

* Cấu trúc của mẫu

Hình 2.2 Cấu trúc của mẫu Builder

Trang 23

- 23 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Trong đó:

 Director: là lớp điều khiển tạo ra một đối tượng Product

 Builder: là lớp trừu tượng cho phép tạo ra đối tượng Product từ các phương thức nhỏ khởi tạo từng thành phần của Product

 ConcreteBuilder: là lớp dẫn xuất của Builder, khởi tạo từng đối tượng cụ thể, lớp này sẽ khởi tạo đối tượng

* Phạm vi ứng dụng mẫu

 Áp dụng cho các lớp có cấu trúc bên trong phức tạp (đặc biệt là một biến

là một tập các đối tượng liên quan với nhau)

 Ứng dụng cho các lớp có các thuộc tính phụ thuộc vào các thuộc tính khác

 Sử dụng các đối tượng khác trong hệ thống mà có thể khó khởi tạo hoặc khởi tạo phức tạp

2.1.3 Mẫu chế tạo (Factory Method Pattern)

Mẫu chế tạo đóng vai trò như một “nhà xưởng” có nhiệm vụ trừu tượng hóa quá trình khởi tạo đối tượng cụ thể khi ứng dụng chạy Tại thời điểm thiết

kế, đối tượng được định nghĩa trừu 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

* Cấu trúc của mẫu

Hình 2.3 Cấu trúc của mẫu Factory

Trang 24

 Product: cũng là lớp trừu tượng

 ConcreteCteatorA và ConcreteCteatorB: là 2 lớp kế thừa từ lớp Creator để tạo ra các đối tượng riêng biệt

 ConcreteProductA và ConcreteProductB: là các lớp kế thừa từ lớp Product, các đối tượng của 2 lớp này sẽ do 2 lớp ConcreteCteatorA và ConcreteCteatorB tạo ra

* Phạm vi ứng dụng mẫu

Sử dụng tính chất kế thừa của mẫu để phân loại các đối tượng được tạo

ra

Sử dụng mối quan hệ kết hợp để tham chiếu tới đối tượng sẽ được tạo

ra Đối tượng được tạo ra sẽ trở thành một phần hay thuộc tính của lớp Factory Chúng ta thường gặp loại này trong mẫu chế tạo trừu tượng (Abstract Factory Pattern)

2.1.4 Mẫu nguyên mẫu (Prototype Pattern)

Giúp khởi tạo đối tượng bằng cách sao chép một đối tượng khác đã tồn tại

* Cấu trúc của mẫu

Trang 25

2.1.5 Mẫu đơn chiếc (Singleton Pattern)

Mẫu đơn chiếc đảm bảo một lớp chỉ có một thể hiện duy nhất được tạo

ra và đồng thời cung cấp một truy cập toàn cục đến đối tượng được tạo ra

Việc sử dụng mẫu đơn chiếc mang lại nhiều tiện ích: Quản lý việc truy cập tốt hơn; cho phép cải tiến các tác vụ và các thể hiện do mẫu có thể được

kế thừa và tùy biến lại thông qua một thể hiện của lớp con; quản lý số lượng thể hiện của một lớp, không nhất thiết chỉ có một thể hiện mà có số thể hiện xác định; khả chuyển hơn so với việc dùng một lớp có thuộc tính tĩnh, vì việc dùng lớp tĩnh chỉ có thể sử dụng một thể hiện duy nhất, còn mẫu đơn chiếc cho phép quản lý các thể hiện tốt hơn và tùy biến theo điều kiện cụ thể

* Cấu trúc của mẫu

Trang 26

* Phạm vi ứng dụng mẫu

Ứng dụng rõ nhất của mẫu đơn chiếc có thể thấy trong dịch vụ Web khi triệu gọi các đối tượng từ xa Ở đó đối tượng nằm trên server hoặc sẽ phục vụ chung cho

tất cả các ứng dụng khách (singleton) hoặc sẽ chỉ đáp ứng một ứng dụng khách riêng lẻ nào đó rồi tự bị phá hủy sau đó

* Nhận xét

Chúng ta xét trường hợp có nhiều đối tượng có cùng chung một số tính chất nào đó được tạo ra ứng với mỗi một yêu cầu từ các đối tượng khách (client) Lúc này độ phức tạp sẽ tăng lên và ứng dụng sẽ chiếm dụng nhiều vùng nhớ hơn Mẫu đơn chiếc là một giải pháp đặc biệt của mẫu chế tạo ở chỗ, đối tượng sinh ra là điểm truy cập toàn cục duy nhất đối với mọi chương trình gọi đến, hay nói một cách khác, tất cả các đối tượng khách gọi đến đều chia sẻ đối tượng được tạo ra

Trang 27

- 27 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 2.6 Cấu trúc của mẫu Adapter Pattern

2.1.6 Mẫu thích nghi (Adapter Pattern)

Mẫu thích nghi biến đổi giao diện của một lớp thành một giao diện khác mà các đối tượng client có thể hiểu được Lớp với giao diện được tạo ra gọi là Adapter Nguyên tắc cơ bản của mẫu thích nghi nằm ở chỗ, làm thế nào

để các lớp với giao diện không tương thích có thể làm việc được với nhau

Mẫu thích nghi không quản lý tập trung các đối tượng gần giống như mẫu chế tạo, mà kết nối với nhiều lớp không liên quan gì với nhau Ví dụ, lớp

A sau khi thực thi giao diện của nó và vẫn muốn bổ sung phương thức từ một lớp B nào đó, chúng ta có thể kết nối A với B thông qua hình thức kế thừa hoặc liên kết đối tượng như một thành phần Mẫu Adapter có một chút giống mẫu proxy ở chỗ đã tận dụng tối đa tính chất “ủy quyền”

* Cấu trúc của mẫu

Trang 28

- 28 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

 Adapter: thực thi từ Target và sử dụng đối tượng lớp Adaptee, Adapter có nhiệm vụ gắn kết Adaptee vào Target để có được chức năng mà Client mong muốn

* Phạm vi ứng dụng mẫu

Mẫu Adapter được ứng dụng trong các trường hợp sau:

- Cần tích hợp một vài module vào chương trình

- Không thể sát nhập trực tiếp module vào chương trình

- Module đang tồn tại không có giao diện như mong muốn

- Cần nhiều hơn các phương thức cho module đó

- Một số phương thức có thể nạp chồng

2.1.7 Mẫu Brigde Pattern

Một thành phần hướng đối tượng (OOP) thường có 2 phần: phần ảo – định nghĩa các chức năng và phần thực thi – thực thi các chức năng được định nghĩa trong phần ảo Hai phần này liên hệ với nhau qua quan hệ kế thừa Những thay đổi trong phần ảo dẫn đến các thay đổi trong phần thực thi

Mẫu Bridge được sử dụng để tách thành phần ảo và thành phần thực thi riêng biệt, do đó các thành phần này có thể thay đổi độc lập và linh động thay

vì liên hệ với nhau bằng quan hệ kế thừa hai thành phần này mà liên hệ với nhau thông qua quan hệ chứa trong

* Cấu trúc của mẫu

Hình 2.7 Cấu trúc của mẫu Bridge

Trang 29

 Implementation: là giao tiếp thực thi của lớp các chức năng nào đó của Abstraction

 RefineAbstraction: là định nghĩa các chức năng mới hoặc chức năng đã có trong Abstraction

 ConcreteImplement: là các lớp định nghĩa tường minh các thực thi trong lớp giao tiếp Implementation

* Phạm vi ứng dụng mẫu

 Sử dụng mẫu khi chúng ta muốn tạo ra sự mềm dẻo giữa 2 thành phần: phần ảo và thực thi của một thành phần và tránh đi mối quan hệ tĩnh giữa chúng

 Sử dụng mẫu khi muốn những thay đổi của phần thực thi sẽ không ảnh hưởng đến Client

 Định nghĩa nhiều thành phần ảo và thực thi

 Phân lớp con một cách thích hợp, nhưng lại muốn quản lý 2 thành phần của hệ thống một cách riêng biệt

Trang 30

- 30 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.1.8 Mẫu phức hợp (Composite Pattern)

Mẫu phức hợp được dùng để thiết kế các đối tượng thành cấu trúc cây

để biểu diễn quan hệ bộ phận – tổng thể Mẫu phức hợp cho phép mã khách hàng (client) xem các đối tượng đơn lẻ và đối tượng hợp từ các đối tượng đơn

lẻ này đều như nhau

Việc không phân biệt đối tượng đơn lẻ và đối tượng phức hợp làm chương trình xử lý trở nên đơn giản hơn Mục tiêu này đạt được bằng cách lợi dụng tích đa hình trong lập trình hướng đối tượng đơn lẻ lẫn đối tượng phức hợp

* Cấu trúc của mẫu

Hình 2.8 Cấu trúc của mẫu Composite

Trang 31

 Composite: là lớp được định nghĩa bởi các thành phần mà nó chứa Composite chứa một nhóm động các Component, vì vậy nó có các phương thức để thêm vào hoặc loại bỏ các thể hiện của Component trong tập các Component của nó Những phương thức được định nghĩa trong Component được thực thi để thực hiện các hành vi đặc tả cho lớp Composite và để gọi lại phương thức đó trong các nốt của nó Lớp Composite được gọi là lớp nhánh hay lớp chứa

 Leaf: là lớp thực thi từ giao tiếp Component Sự khác nhau giữa lớp Leaf

và Composite là lớp Leaf không chứa các tham chiếu đến các Component khác, lớp Leaf đại diện cho mức thấp nhất của cấu trúc cây

Trang 32

- 32 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.1.9 Mẫu lưu giữ (Memento Pattern)

Mẫu này được sử dụng nhằm mục đích không làm phá vỡ tính bao gói (encapsulation) nhưng vẫn lưu giữ và thể hiện được trạng thái bên trong đối tượng để sau này đối tượng có thể phục hồi lại trạng thái trước đó

* Cấu trúc của mẫu

Các thành phần tham gia vào cấu trúc Memento:

 Memento: Lưu giữ trạng thái riêng của đối tượng nguồn Originator, bảo

vệ chống truy xuất bởi các đối tượng khác ngoài đối tượng Originator của

Trang 33

Sử dụng mẫu này làm đơn giản hóa đối tượng Originator, người dùng chỉ quản lý các tình trạng do Originator yêu cầu và tránh được việc người dùng phải thông báo cho Originator khi họ thực hiện xong

Memento có thể bị quá tải nếu đối tượng nguồn Originator phải sao chép khối lượng lớn những thông tin lưu trữ hay nếu người dùng tạo và trả lại Memento cho Originator khi đối tượng này đã đầy

2.1.10 Mẫu quan sát (Observer Pattern)

Mẫu quan sát đị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ẽ thông báo và tự động cập nhật theo

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 đồ họa phân tách giao diện (GUI) ra khỏi dữ liệu 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 quan sát 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

Trang 34

- 34 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

đổ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ó

* Cấu trúc của 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 biệt của mẫu này là sự ánh

xạ qua lại giữa đố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)

* Phạm vi ứng dụng mẫu

Hình 2.10 Cấu trúc của mẫu Observer

Trang 35

- 35 –

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Khi áp dụng có mối quan hệ phụ thuộc, đối tượng này phụ thuộc vào đối tượng kia

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

2.1.11 Mẫu ủy nhiệm (Proxy Pattern)

* Ý nghĩa

Mẫu ủy nhiệm (Proxy Pattern) là mẫu thiết kế mà ở đó tất cả các truy cập trực tiếp một đối tượng nào đó sẽ được chuyển hướng vào một đối tượng trung gian của lớp ủy nhiệm

Mẫu ủy nhiệm không những giúp quản lý đối tượng tốt hơn mà còn có nhiệm vụ bảo vệ việc truy cập một đối tượng bằng cách thông qua Proxy, hay còn gọi là truy cập gián tiếp Mẫu Proxy được ủy quyền về phía ứng dụng khách cho phép tương tác với đối tượng đích theo những cách khác nhau, như gửi yêu cầu một dịch vụ nào đó, theo dõi trạng thái và vòng đời đối tượng, xây dựng lớp vỏ bảo vệ đối tượng… Thí dụ, chúng ta phát hiện ra một đối tượng như thư viện DLL có thể bị khai thác truy cập vào trong một số trường quan trọng, khi đó chúng ta không thể mở mã nguồn thư viện đã được dịch để

vá lỗ hổng Giải pháp lúc này là xây dựng một proxy ngăn chặn truy cập các trường đó và cuối cùng biên dịch lại thành một DLL mới

* Cấu trúc của mẫu

Ngày đăng: 08/11/2014, 21:51

HÌNH ẢNH LIÊN QUAN

1.4. Sơ đồ mối quan hệ giữa các mẫu thiết kế - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
1.4. Sơ đồ mối quan hệ giữa các mẫu thiết kế (Trang 14)
Hình 2.1. Cấu trúc của mẫu Abstract Factory - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 2.1. Cấu trúc của mẫu Abstract Factory (Trang 21)
Hình 2.7. Cấu trúc của mẫu  Bridge - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 2.7. Cấu trúc của mẫu Bridge (Trang 28)
Hình 2.8. Cấu trúc của mẫu  Composite - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 2.8. Cấu trúc của mẫu Composite (Trang 30)
Hình 2.10. Cấu trúc của mẫu Observer - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 2.10. Cấu trúc của mẫu Observer (Trang 34)
Hình 2.14. Cấu trúc mẫu Visitor - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 2.14. Cấu trúc mẫu Visitor (Trang 40)
Hình 3.1.  Một cách nhìn về logistics trong kinh doanh ở công ty - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.1. Một cách nhìn về logistics trong kinh doanh ở công ty (Trang 48)
Hình 3.3: Biểu đồ lớp thiết kế thực thi ca sử - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.3 Biểu đồ lớp thiết kế thực thi ca sử (Trang 51)
Hình 3.4. Biểu đồ lớp thiết kế thực thi ca quản lý yêu cầu nhập kho - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.4. Biểu đồ lớp thiết kế thực thi ca quản lý yêu cầu nhập kho (Trang 52)
Hình 3.5: Biều đồ lớp thiết kế thực thi ca sử dụng quản - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.5 Biều đồ lớp thiết kế thực thi ca sử dụng quản (Trang 54)
Hình 3.10. Biểu đồ lớp thiết kế thực thi ca sử dụng quản lý chi tiết - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.10. Biểu đồ lớp thiết kế thực thi ca sử dụng quản lý chi tiết (Trang 59)
Hình 3.13:  Giao diện form Tra cứu và tìm kiếm yêu cầu nhập kho . - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.13 Giao diện form Tra cứu và tìm kiếm yêu cầu nhập kho (Trang 65)
Hình 3.14: Giao diện form tìm kiếm, sửa, xóa yêu cầu nhập kho - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.14 Giao diện form tìm kiếm, sửa, xóa yêu cầu nhập kho (Trang 66)
Hình 3.15: Giao diện form Tìm kiếm, sửa và xóa giao dịch nhập kho . - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.15 Giao diện form Tìm kiếm, sửa và xóa giao dịch nhập kho (Trang 67)
Hình 3.16:  Phê duyệt yêu cầu nhập kho - Mẫu thiết kế và ứng dụng phát triển hệ thống thông tin quản lý xuất nhập và tồn kho trong hoạt động Logistics
Hình 3.16 Phê duyệt yêu cầu nhập kho (Trang 68)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm