美文网首页
设计模式-创建模式-原型模式

设计模式-创建模式-原型模式

作者: 阿棍儿_Leon | 来源:发表于2020-04-28 19:38 被阅读0次

原型模式简单说就是自我复制,实现层面就是实现一个Clone函数,也可以认为是拷贝构造函数的指针版本。

以下代码定义了原型模式的抽象类,核心就是Clone函数。

#include <iostream>

using namespace std;

class ProtoType
{
public:
    virtual ProtoType* Clone()=0;
    virtual ~ProtoType(){}
};

以下代码定义了原型模式的实现类,由于属性简单,这里可以用默认的拷贝构造函数。

class ConcreteProtoType:public ProtoType
{
public:
    int attribute;
    ConcreteProtoType(int value):attribute(value){}
    ProtoType* Clone()
    {
        return new ConcreteProtoType(*this);
    }
    void Display(void)
    {
        cout<<"attribute="<<attribute<<endl;
    }
};

以下是对原型模式的演示,分别打印了原型和克隆体的属性。

int main()
{
    ProtoType* P = new ConcreteProtoType(123);
    ProtoType* PClone = P->Clone();
    dynamic_cast<ConcreteProtoType*>(P)->Display();
    dynamic_cast<ConcreteProtoType*>(PClone)->Display();
    delete P;
    delete PClone;
    return 0;
}

输出

attribute=123
attribute=123

相关文章

  • 设计模式之原型模式

    设计模式之原型模式 原型模式 属于 创建型模式,提供创建对象的最佳方式。 原型模式 简介 也就是 说 根据一个已有...

  • Spring 准备内容

    准备内容 原型设计模式 PropotypeModle 原型模式也属于创造型设计模式,用原型实例指定创建对象的种类,...

  • 设计模式问答(一)

    设计模式问答(一) 什么是设计模式?您能说出工厂模式、抽象工厂模式、创建者模式、原型模式、原型模式的潜复制及深复制...

  • android常用设计模式

    26种设计模式 创建型设计模式[5] 单例模式,工厂模式,抽象工厂模式,建造模式,原型模式,[简单工厂模式] 结构...

  • 常用开源框架中设计模式使用分析-原型设计模式(Prototype

    五、原型设计模式(Prototype Pattern) 5.1 介绍 相比单例设计模式,原型模式是每次创建一个对象...

  • 设计模式之原型模式

    设计模式之原型模式 Intro 简介 原型模式,用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 原...

  • JS设计模式-其他1-原型模式 & 桥接模式

    其他设计模式系列开始介绍前端不常用的设计模式有哪些设计模式? 创建性模式原型模式 结构型模式桥接模式 组合模式 ...

  • 23种常规设计模式

    常规设计模式 设计模式概述 创建型模式:5单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式 结构型模式:7适...

  • 设计模式(Day01)

    本文包括:创建型模式【工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式】 设计模式的类型 设计模式的类型:1...

  • 初始设计模式之原型模式

    原型模式是什么? 原型模式怎么用?浅拷贝深拷贝 原型模式再理解 一、原型模式是什么? ​ 原型模式是一种创建型设计...

网友评论

      本文标题:设计模式-创建模式-原型模式

      本文链接:https://www.haomeiwen.com/subject/rgvbwhtx.html