最近在学习C++的设计模式,(本来这个专栏是为了多线程学习记录的,但是实在没太多精力写博客,因为写博客速度跟不上学习速度了),今天学习到了C++依赖注入,想到了之前学习C#有set、get设置器,用于限制依赖的注入,完成对变量的封装性。想着C++能不能做一个类似的set、get,恰巧学到模板类编程规范,今天就写了这么一个小工具,目标是达成代码优美,同时兼具调用时的便捷性。暂时写出以下代码(有待完善):
setter_getter.h
#pragma once
#include<functional>
namespace star {
template<typename DATA_TYPE>
class getter_setter
{
public:
getter_setter();
getter_setter(DATA_TYPE data);
getter_setter(DATA_TYPE data, std::function<DATA_TYPE(DATA_TYPE)> getter, std::function<DATA_TYPE(DATA_TYPE)> setter);
getter_setter(std::function<DATA_TYPE(DATA_TYPE)> getter, std::function<DATA_TYPE(DATA_TYPE)> setter);
getter_setter(const getter_setter<DATA_TYPE>& CopySource);
getter_setter(getter_setter<DATA_TYPE>&& MoveSource);
~getter_setter();
void change_setter(std::function<DATA_TYPE(DATA_TYPE)> setter);
void