zoukankan      html  css  js  c++  java
  • 第九章-原型模式

    原型模式(Prototype): 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    图片

    原型模式其实就是从一个对象创建另外一个可定制的对象,而且不需要知道任何创建的细节。

    原型模式基本代码

    #include<iostream>
    #include<string>
    
    using namespace std;
    
    //抽象基类
    class Prototype
    {
    private:
    	string m_strName;
    public:
    	Prototype(string strName) { m_strName = strName; }
    	Prototype() { m_strName = " "; }
    	void Show()
    	{
    		cout << m_strName << endl;
    	}
    	virtual Prototype* Clone() = 0;
    };
    
    // class ConcretePrototype1 
    class ConcretePrototype1 : public Prototype
    {
    public:
    	ConcretePrototype1(string strName) : Prototype(strName) {}
    	ConcretePrototype1() {}
    
    	virtual Prototype* Clone()
    	{
    		ConcretePrototype1 *p = new ConcretePrototype1();
    		*p = *this; 						//复制对象 
    		return p;
    	}
    };
    
    // class ConcretePrototype2 
    class ConcretePrototype2 : public Prototype
    {
    public:
    	ConcretePrototype2(string strName) : Prototype(strName) {}
    	ConcretePrototype2() {}
    
    	virtual Prototype* Clone()
    	{
    		ConcretePrototype2 *p = new ConcretePrototype2();
    		*p = *this; //复制对象 
    		return p;
    	}
    };
    
    
    
    //客户端
    int main()
    {
    	ConcretePrototype1* test = new ConcretePrototype1("小王");
    	ConcretePrototype1* test2 = (ConcretePrototype1*)test->Clone();
    	test->Show();
    	test2->Show();
    
    	system("pause");
    	return 0;
    }
    
    
    

    浅拷贝和深拷贝 详细见《大话数据结构》第9章

  • 相关阅读:
    多属性量化决策模型
    对称加密与非对称加密
    子网掩码
    网络安全
    万维网WWW、电子邮件email与文件传输FTP
    DHCP协议
    DNS协议
    ARP协议与RARP协议
    springboot WebSocket的使用
    Java调用Python的两种方式
  • 原文地址:https://www.cnblogs.com/wfcg165/p/11996042.html
Copyright © 2011-2022 走看看