skip to Main Content

Welcome

Say hello to the toggle bar. This is an optional section you can use to display any content you'd like. Simply select a page from the theme panel and the content of the page will display here. You can even use the drag and drop builder to create this! This is a perfect place for your company mission statement, alerts, notices or anything else.

Get In Touch

Email: support@total.com
Phone: 1-800-Total-Theme
Address: Las Vegas, Nevada

Our Location

togglebar-map

Memento Pattern

Post Series: Behavioral Design Pattern

This pattern used to capture the current state of an object and store it in such a manner that it can be restored at a later time without breaking the rules of encapsulation.

Useful

1. Mục đích: Không xâm phạm tính đóng gói, lấy được và đưa ra những trạng thái trong của một đối tượng để nó có thể được khôi phục lại trạng thái đó sau này. 2. Động cơ thúc đẩy: Đôi khi việc ghi lại trạng thái trong của một đối tượng là rất cần thiết. Việc này được yêu cầu khi thực thi việc kiểm tra và cơ chế Undo (cơ chế cho phép người dùng rút lại những thao tác không chắc chắn hoặc khôi phục lại do có lỗi). Bạn phải lưu thông tin về trạng thái ở một nơi nào đó để bạn có thể khôi phục lại đối tượng về trạng thái trước của nó. Nhưng các đối tượng thường đóng gói một vài hoặc tất cả trạng thái của chúng để làm cho các đối tượng khác không thể truy cập hoặc để cho những trạng thái của nó không thể bị lưu trữ bên ngoài. Việc phơi bày những trạng thái này sẽ vi phạm tính đóng gói, điều này có thể làm tổn hại đến tính tin cậy và tính mở rộng của ứng dụng.

Memento Design Pattern C#

  • Originator: This is a class that creates a memento object containing a snapshot of the Originator’s current state. It also restores the Originator to a previously stored state by using SetMemento operation.
  • Memento: This is a class that holds the information about the Originator’s saved state.
  • Caretaker: This is a class that is used to hold a Memento object for later use. This acts as a store only; it never examine or modify the contents of the Memento object.

Implement

When to use it?

  1. The state of an object need to be saved and restored at a later time.
  2. The state of an object cannot be exposed directly by using interface without exposing implementation. (đảm bảo tính đóng gói)

Other Relate pattern

1. Command: Mẫu này có thể sử dụng Memento để duy trì các trạng thái của các thao tác có thể undo.

2. Iterator: Mementos có thể được sử dụng cho quá trình lặp như đã mô tả lúc trước.

Resource

http://www.dotnettricks.com/learn/designpatterns/memento-design-pattern-c-sharp

https://viblo.asia/p/memento-pattern-su-dung-nskeyedarchiver-XL6lAY9mlek

https://vi.wikipedia.org/wiki/Memento_pattern

http://laptrinh.vn/d/4384-huong-dan-java-design-pattern-memento-pattern.html

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Back To Top