Mục lục
Memento Design Pattern được sử dụng để khôi phục một đối tượng về trạng thái trước đó của nó.
Điều đó có nghĩa là nếu bạn muốn thực hiện một số loại hoạt động hoàn tác, khôi phục trong ứng dụng thì có thể sử dụng Memento Design Pattern.
Một Memento Design Pattern có các phần sau đây:
Để hiểu rõ hơn, mình có một ví dụ cụ thể dưới đây.
Như các bạn thấy ở hình trên đây, mình có một nhân viên tên là Quyền, có ID 101 và mức lương là 2000$. Bây giờ mình sẽ thay đổi lương thành 3000$.
Sau một thời gian cảm thấy không hợp lệ, mình muốn cho nó quay lại trạng thái ban đầu. Khi đó sẽ sử dụng Memento Design Pattern để làm chuyện này.
Trong phần này mình sẽ thực hiện triển khai Memento Design Pattern trong C# thông qua một ví dụ cụ thể. Các bạn cùng mình thực hiện theo trình tự các bước nhé.
Bước 1: Tạo class LEDTV.
Trong class này có ba thuộc tính: Size, Price, USBSupport. Sau đó khởi tạo constructor LEDTV với ba thuộc tính trên. Trong class này có thêm phương thức GetDetails()
để trả về chi tiết các thông tin của TV LED.
LEDTV.cs
|
Bước 2: Tạo class Memento.
Class này được sử dụng để lưu giữ trạng thái bên trong của trình khởi tạo.
Memento.cs
|
Bước 3: Tạo class CareTaker.
Được sử dụng để duy trì các mementos object.
Caretaker.cs
|
Bước 4: Tạo class Originator.
Trong class có phương thức CreateMemento()
được sử dụng để thiết lập trạng thái bên trong đối tượng Memento. Phương thức SetMementor()
được sử dụng để khôi phục trạng thái.
Originator.cs
|
Bước 5: Tạo client.
Trong class này chúng ta sẽ truyền các thông tin chi tiết, sau đó hiển thị và kiểm tra kết quả.
Program.cs
|
Kết quả:
Về bài trước |
Cờ caro |
Butterfly |
Lật hình (luyện trí nhớ) |
Cờ tướng ONLINE |
Xếp hình |
Ghép hình |
15_PUZZLE |
Kill ghosts |
Banchim |
Planet Defense |
Tower game |
Tower game |
Plapy Bird (NH.Đông) |
Vượt chướng ngại vật |
+ Lê Văn Thuyên-0379136392:Cảm ơn quý vị và các bạn đã vào Website của Lê Thuyên! Lê thuyên rất mong nhận được sự góp ý của quý vị và các bạn cho sự phát triển của website này. Xin chân thành cảm ơn!
* Dũng Trung-090567448:Lê Văn Thuyên0379136392--->Ok.Anh!
* Bé Nguyễn-benguyen@gmail,com:Lê Văn Thuyên0379136392--->Good job!
+ -:
+ -: