Memento
Lƣu trữ trạng thái của đối tƣợng Originator.
Bảo vệ, chống truy cập từ các đối tƣợng khác originator.
Originator
Tạo memento chứa hình chụp trạng thái của mình Sử dụng memento để khôi phục về trạng thái cũ.
Caretaker
Có trách nhiệm quản lý các memento.
Không thay đổi hoặc truy xuất nội dung của memento. Memento có những đặc điểm:
Đảm bảo ranh giới của sự đóng gói.
Đơn giản Originator. Trong các thiết kế hỗ trợ khôi phục trạng thái khác, Originator có chức năng lƣu trữ các phiên bản trạng thái của mình và do đó phải thi hành các chức năng quản lý lƣu trữ.
Sử dụng memento có thể gây ra chi phí lớn nếu Originator có nhiều thông tin trạng thái cần lƣu trữ hoặc nếu việc ghi lại và khôi phục trạng thái diễn ra với tần suất lớn.
Việc đảm bảo chỉ originator mới có quyền truy cập memento là tƣơng đổi khó xây dựng ở một số ngôn ngữ lập trình.
Chi phí ẩn của việc lƣu trữ memento : caretaker có nhiệm vụ quản lý cũng nhƣ xoá bỏ các memento nó yêu cầu tạo ra. Tuy nhiên nó không đƣợc biết kích
Cần lƣu lại trạng thái nội bộ của một đối tƣợng để có thể khôi phục về trạn thái đó sau này.
Xây dựng giao diện trực tiếp để truy xuất thông tin trạng thái sẽ phơi bầy cấu trúc và phá hỏng tính đóng gói của đối tƣợng.
Các Command có thể sử các memento để duy trì trạng thái cho các thao tác có khả năng phục hồi đƣợc.
Các Memento có thể đƣợc sử dụng cho vòng lặp sớm hơn.
1.3.3.7. Observer
Định nghĩa: Observer định nghĩa một phụ thuộc 1- nhiều giữa các đối tƣợng để khi một đối tƣợng thay đổi trạng thái thì tất cả các phục thuộc của nó đƣợc nhận biết và cập nhật tự động.