Mẫu Memento (mẫu lƣu giữ)

Một phần của tài liệu Vận dụng công nghệ hướng đối tượng sử dụng mẫu thiết kế để phát triển ứng dụng Tổ chức và quản lý hoạt động giao công việc (Trang 29)

4. Túm tắt cấu trỳc của luận văn

1.3.9.Mẫu Memento (mẫu lƣu giữ)

1.3.9.1. í nghĩa

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 đú.

1.3.9.2. Mụ tả

Khi ta cần lƣu giữ trạng thỏi bờn trong của một đối tƣợng, chỳng ta phải lƣu giữ trạng thỏi của đối tƣợng ở một nơi nào đú để sau này cú thể phục hồi lại trạng thỏi trƣớc đú của đối tƣợng. Theo nguyờn tắc lập trỡnh hƣớng đối tƣợng, một đối tƣợng khụng bao giờ đƣợc phộp cho cỏc đối tƣợng khỏc truy xuất đến trạng thỏi bờn trong của nú (thành phần private). Nếu cho phộp truy xuất đến cỏc trạng thỏi bờn trong, nú sẽ phỏ vỡ tớnh bao gúi của đối tƣợng, làm cho ứng dụng khú tin cậy và khú mở rộng sau này.

Mẫu Momento đƣợc thiết kế để giải quyết vấn đề này. Một Memento là một đối tƣợng đƣợc tạo ra để lƣu giữ cỏc thành phần Private của đối tƣợng khỏc (gọi là đối

tƣợng nguồn (Originator) của Memento). Thao tỏc Phục hồi (Undo) sẽ yờu cầu một đối tƣợng nguồn của Memento khi nú cần kiểm tra trạng thỏi của đối tƣợng. Đối tƣợng nguồn Originator sẽ kớch hoạt Memento với thụng tin mụ tả trạng thỏi hiện tại của nú. Chỉ đối tƣợng nguồn Originator mới cú thể lƣu giữ và lấy thụng tin từ Memento, cũn cỏc đối tƣợng khỏc khụng cú quyền này.

1.3.9.3. Cấu trỳc mẫu

Hỡnh 1.12: Cấu trỳc mẫu Memento Cỏc thành phần tham gia vào cấu trỳc mẫu 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 nú.  Originator: Tạo một Memento chứa đựng thụng tin về trạng thỏi riờng hiện

tại của nú. Sử dụng Memento để phục hồi lại trạng thỏi riờng của nú.

CareTaker: Phản hồi về sự giữ an toàn của Memento. Đảm bảo việc khụng bao giờ thao tỏc hay truy xuất đến nội dung của Memento.

1.3.9.4. Biểu đồ cộng tỏc

Hỡnh 1.13: Biểu đồ cộng tỏc của mẫu Memento

Đối tƣợng CareTaker sẽ gọi một Memento của một Originator, giữ nú một thời gian sau đú trả nú lại cho Originator.

1.3.9.5. Cỏc tỡnh huống ỏp dụng

Ta thƣờng sử dụng mẫu Memento khi một thụng tin của trạng thỏi đối tƣợng phải đƣợc lƣu lại để nú cú thể đƣợc phục hồi lại trạng thỏi đú sau này.

Khi cần cỏc giao tiếp trực tiếp với cỏc trạng thỏi chi tiết bờn trong của đối tƣợng mà khụng phỏ phỏ vỡ tớnh bao gúi của đối tƣợng.

1.3.9.6. Thuận lợi và hạn chế

Sử dụng mẫu Memento cho phộp ta duy trỡ đƣợc sự bao gúi của đối tƣợng. Mẫu này trỏnh đƣợc việc làm lộ thụng tin mà chỉ ngƣời tạo ra mới đƣợc biết và quản lý.

Sử dụng mẫu này làm đơn giản hoỏ đố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.

Việc sử dụng mẫu Memento cú thể tạo ra sự hao tổn tài nguyờn.

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.

Một phần của tài liệu Vận dụng công nghệ hướng đối tượng sử dụng mẫu thiết kế để phát triển ứng dụng Tổ chức và quản lý hoạt động giao công việc (Trang 29)