文章目录
前言
创建型模式主要关注对象的创建过程,提供了一种创建对象的最佳方式,并隐藏了创建逻辑的细节。本章介绍创建型模式中的工厂方法模式和抽象工厂模式。
设计模式详解
1. 简单工厂模式
又称静态工厂模式,包含一个抽象产品类,多个产品的实现类,一个工厂类。由工厂类的对象决定创建哪一种产品类的实例。
#include <iostream>
#include <string>
#include <memory>
using namespace std;
// 抽象产品类(所有产品的基类)
class Vehicle {
public:
Vehicle() {
}
virtual void Wheel() = 0;
};
// 具体产品类
class Car : public Vehicle {
public:
Car() {
}
virtual void Wheel() override {
std::cout << "4个轮子" << std::endl;
}
};
class Motorcycle : public Vehicle {
public:
Motorcycle() {
}
virtual void Wheel() override {
std::cout << "2个轮子" << std::endl;
}
};
// 工厂类
class Factory {
public:
static std::shared_ptr<Vehicle> Create(const std::string& name) {
if (name == "小汽车") {
return std::make_shared<Car>();
}
else if (name == "摩托车") {
return std::make_shared<Motorcycle>();
}
else {
std::cout << "没有这种产品" << std::endl;
return nullptr;
}
}
};
int main() {
std::shared_ptr<Vehicle> vehicle