单例模式是什么呢?
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类
只能存在一个对象实例
,并且该类只提供一个取得其对象实例的方法(静态方法)。
代码演示(代码比较容易我就不多加没有必要的 cpp文件了):
Factory.h
#pragma once
#include "Food.h"
class Factory
{
public:
static Factory* GetFactory()
{
static Factory factory;
return &factory;
}
Food* CreateFood(const char* _date, const char* _kind)
{
return new Food(_date, _kind);
}
private:
Factory(){}
};
Food.h
#pragma once
#include <string>
class Food
{
protected:
std::string m_date;
std::string m_kind;
public:
Food(const char* _date, const char* _kind)
{
m_date = _date;
m_kind = _kind;
}
void PrintInfo()
{
std::cout << "生产日期:" << m_date << "\t" << "种类:" << m_kind << std::endl;
}
};
main.cpp
#include <iostream>
#include <string>
#include <Windows.h>
#ifndef _WIN32
#include <stdint.h>
#endif
#include "Factory.h"
#include "Food.h"
using namespace std;
int32_t main(int argc, const char* argv[])
{
Food *f1, *f2, *f3;
f1 = Factory::GetFactory()->CreateFood("2020.8.19", "快乐水");
f2 = Factory::GetFactory()->CreateFood("2020.8.18", "嘤嘤嘤");
f3 = Factory::GetFactory()->CreateFood("2020.8.17", "哈哈哈");
f1->PrintInfo();
f2->PrintInfo();
f3->PrintInfo();
delete f1;
delete f2;
delete f3;
system("pause");
return 0;
}