初识工厂模式
我们先看工厂模式的介绍
这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
简单来说,使用了C++多态的特性,将存在继承关系的类,通过一个工厂类创建对应的子类(派生类)对象。在项目复杂的情况下,可以便于子类对象的创建。
工厂模式的实现方式可分别简单工厂模式、工厂方法模式、抽象工厂模式,每个实现方式都存在优和劣。
最近炒鞋炒的非常的火,那么以鞋厂的形式,一一分析针对每个实现方式进行分析。
简单工厂模式 具体的情形:- 鞋厂可以指定生产耐克、阿迪达斯和李宁牌子的鞋子。哪个鞋炒的火爆,老板就生产哪个,看形势生产。
- 工厂类(
ShoesFactory
):工厂模式的核心类,会定义一个用于创建指定的具体实例对象的接口。 - 抽象产品类(
Shoes
):是具体产品类的继承的父类或实现的接口。 - 具体产品类(
NiKeShoes\AdidasShoes\LiNingShoes
):工厂类所创建的对象就是此具体产品实例。
- 工厂类封装了创建具体产品对象的函数。
- 扩展性非常差,新增产品的时候,需要去修改工厂类。
Shoes
为鞋子的抽象类(基类),接口函数为Show()
,用于显示鞋子广告。NiKeShoes
、AdidasShoes
、LiNingShoes
为具体鞋子的类,分别是耐克、阿迪达斯和李宁鞋牌的鞋,它们都继承于Shoes
抽象类。
// 鞋子抽象类
class Shoes
{
public:
virtual ~Shoes() {}
virtual void Show() = 0;
};
// 耐克鞋子
class NiKeShoes : public Shoes
{
public:
void Show()
{
std::cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?