码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式开始--备忘录模式

时间:2015-04-01 16:55:06      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

备忘录模式

一、作用:

在不破坏原有封装性(属性什么的,不要暴漏给客户端)的前提下,捕获一个对象的内容状态,并保持这个对象的状态,同样可以将对象恢复到之前的状态

 二、类图:

技术分享

三、实现

 (1)Role类,角色类,可以保存状态,恢复状态

技术分享
public class Role {
    private String status;
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public Memory saveMemory()
    {
        return new Memory(status);
    }
    public void recoveryMemory(Memory memory)
    {
        this.status = memory.getStatus();
    }
}
View Code

(2)Memory类,实际状态保持的类,用于封装,隐藏细节

技术分享
public class Memory {
    private String status;
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    public Memory(String status)
    {
        this.status = status;
    }
}
View Code

(3)MemoryCare类,用于set和get保存的状态

技术分享
public class MemoryCare {
    private Memory memory;
    public Memory getMemory() {
        return memory;
    }
    public void setMemory(Memory memory) {
        this.memory = memory;
    }
}
View Code

(4)Client,客户类

技术分享
public class Client {
    public static void main(String[] args) {
        MemoryCare mc = new MemoryCare();
        Role role = new Role();
        role.setStatus("fighting");
        System.out.println(role.getStatus());
        mc.setMemory(role.saveMemory());
        role.setStatus("game over");
        System.out.println(role.getStatus());
        role.recoveryMemory(mc.getMemory());
        System.out.println(role.getStatus());
    }
}
View Code

 

Bonus:适配器模式:再增加一个类,使用适配器模式,将不适用与现在接口的方法改写成可以适用的方法

设计模式开始--备忘录模式

标签:

原文地址:http://www.cnblogs.com/sunshisonghit/p/4383947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!