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

备忘录模式

一、作用:

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

 二、类图:

三、实现

 (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:适配器模式:再增加一个类,使用适配器模式,将不适用与现在接口的方法改写成可以适用的方法

posted on 2015-04-01 15:19  zhouzhou0615  阅读(93)  评论(0编辑  收藏  举报

导航