设计模式:prototype模式
2024-09-06 02:27:29
使用场景:在不能根据类创建对象的时候,根据已有的对象创建对象
不能根据类创建对象的情况:
- 创建一个类的对象时,需要根据多种对象来创建,创建的过程非常复杂
- 难以根据类生成对象
例子:
class Product
{
public:
virtual Product* createClone() = 0;
virtual void use() = 0;
};
class Apple: public Product
{
int x;
public:
Product* createClone()
{
return new Apple(*this);
} Apple(int x = 0)
{
this->x = x;
} Apple(const Apple& other)
{
x = other.x;
} void use()
{
cout << "x = " << x << endl;
}
};
int main()
{
Product* p1 = new Apple(10);
Product* p2 = p1->createClone(); p1->use();
p2->use(); return 0;
}
最新文章
- Devexpress EXCEL导出
- MVC Ajax Helper或jQuery异步方式加载部分视图
- Maven配置中scope说明
- 命令行编译vs2013项目
- 【JAVA、C++】LeetCode 014 Longest Common Prefix
- html li标签前面添加图标三种方法
- 对于System.Net.Http的学习(一)——System.Net.Http 简介(转)
- 使用Spring的@Autowired 实现DAO, Service, Controller三层的注入(转)
- C++类对象大小的计算
- ASP.NET Core轻松入门之Middleware管道模型
- 基于GCC的openMP学习与测试
- 使用ArcMap做一个1:5000标准分幅图并编号
- HTML - label (转)
- 项目详解4—haproxy 反向代理负载均衡
- 【AtCoder】AGC015
- springboot-thymeleaf
- IntelliJ IDEA创建maven多模块项目
- ubuntu 系统分区
- git bug修复
- tar 解压某个指定的文件或者文件夹