当前位置:网站首页>The memorandum model of behavior model
The memorandum model of behavior model
2020-11-06 21:35:00 【Irving the procedural ape】
Catalog
- Definition and characteristics
- Structure and Implementation
- The structure of the pattern
- The realization of pattern
- Application scenarios
- Expand : Mixed with prototype patterns
Everyone makes mistakes sometimes , I hope there is a kind of “ Regret ” Make up for your own mistakes , Let yourself start over , But the reality is brutal . In computer applications , Customers also make mistakes often , Can you provide “ Regret ” Give it to them ? Of course you can , And it's necessary . This function consists of “ Memo mode ” To achieve .
In fact, many applications provide this function , Such as Word、 Notepad 、Photoshop、Eclipse Wait for the software to press when editing Ctrl+Z Key combination can undo the current operation , Restore the document to its previous state ; And in IE Back key in 、 Rollback operation in database transaction management 、 Save intermediate results when playing games 、 Database and operating system backup operation 、 The repentance function in chess games belongs to this kind of game .
Memo mode can record the internal state of an object , When the user regrets, the current operation can be undone , Restore data to its original state .
Definition and characteristics
Memorandum (Memento) Pattern The definition of : Without breaking encapsulation , Capture the internal state of an object , And save the state outside the object , So that the object can be restored to the original saved state when needed later , This mode is also called snapshot mode .
Memo mode is an object behavior pattern , Its main advantages are as follows :
- Provides a mechanism for restoring state : When the user needs to be able to more easily restore the data to a historical state .
- Realize the encapsulation of internal state : In addition to the founders who created it , No other object can access this state information .
- Simplified the originator : Initiators do not need to manage and save individual backups of their internal state , All status information is stored in the memo , And managed by the manager , This is in line with the principle of single responsibility .
Its main drawback is : High resource consumption , If the internal state information to be saved is too much or too frequent , It will occupy a large amount of memory resources .
Structure and Implementation
The core of the memo pattern is to design the memo class and the manager class for managing the memo , Now let's learn about its structure and implementation .
The structure of the pattern
The main roles of the memo model are as follows :
- Originator (Originator) role : Record the internal status information of the current time , Provides the ability to create and recover memo data , Implement other business functions , It has access to all the information in the memo .
- Memorandum (Memento) role : Responsible for storing the internal state of the initiator , Provide these internal states to the originator when needed .
- managers (Caretaker) role : Manage memos , Provides the ability to save and retrieve memos , But it cannot access and modify the contents of the memorandum .
The structure of the memo mode is shown in the figure :
The realization of pattern
The implementation code of memo mode is as follows :
class Program{ static void Main(string[] args) { Originator or = new Originator(); Caretaker cr = new Caretaker(); or.SetState("S0"); Console.WriteLine(" The initial state :" + or.GetState()); cr.SetMemento(or.CreateMemento()); // Save state or.SetState("S1"); Console.WriteLine(" New status :" + or.GetState()); or.RestoreMemento(cr.GetMemento()); // Restore the state Console.WriteLine(" Restore the state :" + or.GetState()); Console.Read(); }}// Memorandum public class Memento{ private String state; public Memento(String state) { this.state=s.........
版权声明
本文为[Irving the procedural ape]所创,转载请带上原文链接,感谢
边栏推荐
- 【涂鸦物联网足迹】物联网基础介绍篇
- 预留电池接口,内置充放电电路及电量计,迅为助力轻松搞定手持应用
- STM32F030F4P6兼容灵动微MM32F031F4P6
- JVM memory allocation - xms128m - xmx512m - XX: permsize = 128M - XX: maxpermsize = 512M
- 小熊派开发板实践:智慧路灯沙箱实验之真实设备接入
- Event monitoring problem
- Summary of front-end performance optimization that every front-end engineer should understand:
- 打工人好物——磨炼钢铁意志就要这样高效的电脑
- The role of theme music in games
- Message queue - Analysis
猜你喜欢
With this artifact, quickly say goodbye to spam messages
The method of realizing high SLO on large scale kubernetes cluster
Elasticsearch database | elasticsearch-7.5.0 application construction
行为型模式之解释器模式
CCR coin frying robot: the boss of bitcoin digital currency, what you have to know
How much disk space does a file of 1 byte actually occupy
An article will take you to understand CSS alignment
How does cglib implement multiple agents?
Description of phpshe SMS plug-in
git远程库回退指定版本
随机推荐
Call analysis of start method in JNI thread and callback analysis of run method
[byte jumps, autumn recruitment Posts open] ohayoo! Don't leave after school, I want to ask you to play games!!!
With this artifact, quickly say goodbye to spam messages
What kind of music do you need to make for a complete game?
行为型模式之解释器模式
Summary of common SQL statements
image operating system windows cannot be used on this platform
Some operations kept in mind by the front end foundation GitHub warehouse management
ES中删除索引的mapping字段时应该考虑的点
An article will take you to understand CSS3 fillet knowledge
An article takes you to understand CSS gradient knowledge
jenkins安装部署过程简记
DC-1 target
Interviewer: how about shardingsphere
ORA-02292: 违反完整约束条件 (MIDBJDEV2.SYS_C0020757) - 已找到子记录
This project allows you to quickly learn about a programming language in a few minutes
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
ES6 learning notes (4): easy to understand the new grammar of ES6
Git rebase is in trouble. What to do? Waiting line
2020-08-14:数据任务的执行引擎用的哪些?