zoukankan      html  css  js  c++  java
  • 设计模式之备忘录模式

    备忘录模式原理:将对象的私有数据存储在其他地方,以便重新加载

    代码如下:

    #include <iostream>
    #include <string>
    #include <vector>
    using namespace std;
    
    class GameRole;
    class Memeno
    {
    public:
    	Memeno(int vitality = 0,int defense = 0,int attack = 0):
    	m_vitality(vitality),m_defense(defense),m_attack(attack){}
    	void show()
    	{
    		cout << "vitality:" << m_vitality << "m_defense:" <<m_defense<<"m_attack:"<<m_attack<<endl;
    	}
    friend GameRole;
    private:
    	int m_vitality;
    	int m_defense;
    	int m_attack;
    };
    
    class GameRole
    {
    public:
    	GameRole():m_vitality(100),m_defense(100),m_attack(100){}
    	Memeno Save()
    	{
    		return Memeno(m_vitality,m_defense,m_attack);
    	}
    	
    	void Load(Memeno memeno)
    	{
    		m_vitality = memeno.m_vitality;
    		m_defense = memeno.m_defense;
    		m_attack = memeno.m_attack;
    	}
    	
    	void attack()
    	{
    		m_vitality-=10;
    		m_defense-=10;
    		m_attack-=10;
    	}
    
    	void show()
    	{
    		cout << "vitality:" << m_vitality << "m_defense:" <<m_defense<<"m_attack:"<<m_attack<<endl;
    	}
    
    private:
    	int m_vitality;
    	int m_defense;
    	int m_attack;
    };
    
    class MemnnoLibary
    {
    public:
    	void Save(Memeno memeno)
    	{
    		m_vecMemeno.push_back(memeno);
    	}
    	Memeno Load(int state)
    	{
    		return m_vecMemeno[state];
    	}
    private:
    	vector<Memeno> m_vecMemeno;
    
    };
    
    
    
    int main()
    {
    	GameRole role;
    	Memeno memenno;
    	MemnnoLibary ml;
    	
    	role.show();
    	ml.Save(role.Save());
    	role.attack();
    	role.show();
    	role.Load(ml.Load(0));
    	role.show();
    	return 0;
    }
    
  • 相关阅读:
    xmgrace的配置
    redhat 的安装及grub livecd 的引导
    AutoDock 的安装及 virtual screening 的配置
    怎么查看redhat版本
    分子模拟软件schrodinger的安装
    Amber学习第八天:含有配体的蛋白分子动力学
    Amber 模拟蛋白流程
    Openbabel的安装
    Amber 的安装
    浅谈SQL Server 对于内存的管理
  • 原文地址:https://www.cnblogs.com/liuweilinlin/p/3208241.html
Copyright © 2011-2022 走看看