一、享元模式的概念
享元模式属于结构型模式,主要用于减少创建对象的数量,以减少内存占用和提高性能。
享元模式尝试复用现有的对象实例,如果有就复用,没有再创建,从而达到减少内存占用和提高性能的目的。
二、享元模式使用场景
1、需要以共享的方式,高效的支持大量的细粒度的对象时可以使用享元模式。
2、需要使用缓冲池技术时可以使用享元模式。
三、享元模式构建方法
1、抽象享元类
所有具体享元的父类,给具体享元提供统一的公共接口。
2、具体享元类
抽象享元的具体实现类,实现抽象享元的规定的方法和行为。
3、享元工厂类
负责创建和管理所有的享元对象。
四、享元模式的示例
// FlyweightPattern.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <string>
#include <map>
#define DELETE_PTR(p) {if(p!=nullptr){delete (p); (p)=nullptr;}}
using namespace std;
// 享元抽象类
class Person
{
public:
Person(string name, int age, string sex)
{
m_name = name;
m_age = age;
m_sex = sex;
}
string getName()
{
return m_name;
}
int getAge()
{
return m_age;
}
string getSex()