*★,°*:.☆( ̄▽ ̄)/$:*.°★* 欢迎来到汤姆的csdn博文 喜欢的朋友可以关注一下,下次更新不迷路 私聊获取个人订阅号哦,欢迎订阅共同学习 可以加入大家庭群聊,一起学习天天有福利
设计方法二十三式之工厂方法模式
工厂方法模式(Factory Method Pattern)是一种常见的创建型设计模式,它通过定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法模式使得一个类的实例化延迟到其子类。
在工厂方法模式中,通常包含以下几个角色:
以生产汽车为例,假设我们有两个品牌的汽车:奥迪和宝马。使用工厂方法模式可以这样实现:
通过以上步骤,我们就可以使用工厂方法模式来生产奥迪和宝马两个品牌的汽车对象。在实际开发中,工厂方法模式常用于解耦对象的创建和使用,提高代码的可维护性和灵活性。
在C++中,实现工厂方法模式可以分为以下几个步骤:
class Product {
public:
virtual void Show() = 0;
};
class ConcreteProductA : public Product {
public:
void Show() {
std::cout << "This is ConcreteProductA!" << std::endl;
}
};
class ConcreteProductB : public Product {
public:
void Show() {
std::cout << "This is ConcreteProductB!" << std::endl;
}
};
class Factory {
public:
virtual Product* createProduct() = 0;
};
class ConcreteFactoryA : public Factory {
public:
Product* createProduct() {
return new ConcreteProductA();
}
};
class ConcreteFactoryB : public Factory {
public:
Product* createProduct() {
return new ConcreteProductB();
}
};
int main() {
Factory* factoryA = new ConcreteFactoryA();
Product* productA = factoryA->createProduct();
productA->Show();
Factory* factoryB = new ConcreteFactoryB();
Product* productB = factoryB->createProduct();
productB->Show();
delete productA;
delete factoryA;
delete productB;
delete factoryB;
return 0;
}
通过以上步骤,我们就可以在C++中实现工厂方法模式,达到将对象的创建和使用分离的目的,提高代码灵活性和可维护性。
在实现工厂方法模式时,需要注意以下几个问题:
简单工厂模式(Simple Factory Pattern)是一种常见的创建型设计模式,它通过一个工厂类来实现对象的创建。简单工厂模式属于静态工厂模式,由一个工厂类根据传入的参数,动态决定创建哪一种产品类的实例。
在简单工厂模式中,通常包含以下几个角色:
以生产汽车为例,使用简单工厂模式可以这样实现:
class CarFactory {
public:
static Car* createCar(string brand) {
if (brand == "Audi") {
return new AudiCar();
} else if (brand == "BMW") {
return new BMWCar();
} else {
return nullptr;
}
}
};
int main() {
Car* carA = CarFactory::createCar("Audi");
if (carA != nullptr) {
carA->Show();
delete carA;
}
Car* carB = CarFactory::createCar("BMW");
if (carB != nullptr) {
carB->Show();
delete carB;
}
return 0;
}
通过以上步骤,我们就可以使用简单工厂模式来生产奥迪和宝马两个品牌的汽车对象。在实际开发中,简单工厂模式常用于解耦对象的创建和使用,提高代码的可维护性和灵活性。
单一职责原则(Single Responsibility Principle,SRP)是指一个类或模块应该有且只有一个单一的功能,并且该功能应该由这个类或模块完全封装起来。
简单来说,就是一个类或模块应该只负责一种职责,它所提供的所有服务都应该严密地支持这一职责。如果一个类或模块承担了多种职责,那么它就变得难以理解、维护和扩展。
例如,在设计一个汽车类时,它应该只包含与汽车相关的属性和方法,比如品牌、型号、速度等,而不应该包含与其他领域无关的职责,比如计算机程序或图形界面等。如果一个类同时包含了多种职责,那么在使用和修改时就会非常困难,也容易引发错误和bug。
通过遵循单一职责原则,我们可以将系统中的行为划分为更小的、更具体的领域,从而使代码更加清晰、简洁和易于维护。同时,单一职责原则也有助于减少类之间的耦合度,提高代码的灵活性和可复用性。
提示:这里对文章进行总结:
本文讲了关于工厂方法模式的实现和注意事项,比较简单。
更多好文推荐
2021-4月Python 机器学习——中文新闻文本标题分类
2021年4月-(计算机网络)小型校园网络模拟搭建,最全最准确版
2022-10-31-基于用户的协同过滤推荐算法实现+MAE+RMSE
2022-11-28-大数据可视化,特征维度大于50
2023-3-9-一篇简短的文章把C++左右值关系讲的透透彻彻
上一篇 |
End
|
下一篇 |