19 lines
407 B
C
19 lines
407 B
C
|
#pragma once
|
||
|
|
||
|
#include <map>
|
||
|
#include <memory>
|
||
|
#include <string>
|
||
|
|
||
|
#include "common/log/log.h"
|
||
|
#include "common/macro/macros.h"
|
||
|
|
||
|
template <typename BaseClass>
|
||
|
class AbstractFactory {
|
||
|
virtual ~AbstractFactory() = default;
|
||
|
virtual std::shared_ptr<BaseClass> Create() = 0;
|
||
|
};
|
||
|
|
||
|
template <typename BaseClass, typename DerivedClass>
|
||
|
class ConcreteFactory {
|
||
|
virtual std::shared_ptr<BaseClass> Create() = 0;
|
||
|
};
|