2021金九银十面试季,备忘录模式

[](

)实现

备忘录模式使用三个类 MementoOriginatorCareTaker。Memento 包含了要被恢复的对象的状态。Originator 创建并在 Memento 对象中存储状态。Caretaker 对象负责从 Memento 中恢复对象的状态。

MementoPatternDemo,我们的演示类使用 CareTakerOriginator 对象来显示对象的状态恢复。

备忘录模式

[](

)步骤 1

创建 Memento 类。

Memento.java


public class Memento {



    private String state;



    public Memento(String state){

        this.state = state;

    }



    public String getState(){

        return state;

    }



} 

[](

)步骤 2

创建 Originator 类。

Originator.java


public class Originator {



    private String state;



    public void setState(String state){

        this.state = state;

    }



    public String getState(){

        return state;

    }



    public Memento saveStateToMemento(){

        return new Memento(state);

    }



    public void getStateFromMemento(Memento Memento){

        state = Memento.getState();

    }



} 

[](

)步骤 3

创建 CareTaker 类。

CareTaker.java


public class CareTaker {



    private List<Memento> mementoList = new ArrayList<Memento>();



    public void add(Memento state){

        mementoList.add(state);

    }



    public Memento get(int index){

        return mementoList.get(index);

    }



} 

[](

)步骤 4

使用 CareTakerOriginator 对象。

MementoPatternDemo.java


public class MementoPatternDemo {



    public static void main(String[] args) {

        Originator originator = new Originator();

        CareTaker careTaker = new CareTaker();

        originator.setState("State #1");

        originator.setState("State #2");

        careTaker.add(originator.saveStateToMemento());

        originator.setState("State #3");

        careTaker.add(originator.saveStateToMemento());

        originator.setState("State #4");




# **最后**

**最后,强调几点:**

*   1\. 一定要谨慎对待写在简历上的东西,一定要对简历上的东西非常熟悉。因为一般情况下,面试官都是会根据你的简历来问的; 能有一个上得了台面的项目也非常重要,这很可能是面试官会大量发问的地方,所以在面试之前好好回顾一下自己所做的项目;
*   2\. 和面试官聊基础知识比如设计模式的使用、多线程的使用等等,可以结合具体的项目场景或者是自己在平时是如何使用的;
*   3\. 注意自己开源的Github项目,面试官可能会挖你的Github项目提问;

我个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油!

> **以上面试专题的答小编案整理成面试文档了,文档里有答案详解,以及其他一些大厂面试题目。**

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

# **面试答案**

![三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里](https://img-blog.csdnimg.cn/img_convert/0a08d36818e71bf6f224cf4173d5ca3a.png)

![三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里](https://img-blog.csdnimg.cn/img_convert/7eee386343307a5b780f37fe69e26cc5.png)

,以及其他一些大厂面试题目。**

**[CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】](https://codechina.csdn.net/m0_60958482/java-p7)**

# **面试答案**

[外链图片转存中...(img-eANcGpX2-1630718809988)]

[外链图片转存中...(img-msarGLbW-1630718809989)]

![三面头条+四面阿里+五面腾讯拿offer分享面经总结,最终入职阿里](https://img-blog.csdnimg.cn/img_convert/daea65c4f90dbea36b7019d2eac36120.png)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值