行业知识
C++ 设计模式:工厂模式
2026-10-23 22:11:43
来源:互联网转载
工厂���式是一种创建型设计模式,通过封装对象的创建过程,提高代码的可维护性、可扩展性,并实现对象的创建与使用的解耦。
()简单工厂模式: 提供一个工厂类,根据传入的参数来决定创建哪种产品类的实例。这种模式不符合开闭原则,因为每次添加新产品类型都需要修改工厂类。
class products {public: int money = 0; virtual void sell() = 0;};class apple :public products {public: void sell() { money += 10; }};class banana :public products {public: void sell() { money += 20; }};class factory {public: static products* get_product(int d) { switch (d) { case 0:return new apple; case 1:return new banana; } return nullptr; }}; 工厂方法模式:定义一个创建产品的接口,由子类决定实例化哪个产品类。每个具体工厂类对应一个具体产品类,符合开闭原则,但客户端需要知道具体工厂类。
()class products {public: virtual void sell() = 0;};class factory {public: virtual products* get_product() = 0;};class apple :public products{public: void sell(){ std::cout public: void sell() { std::cout public: products* get_product() { return new apple; }};class banana_producter:public factory {public: products* get_product() { return new banana; }};public: virtual void show() = 0;};//抽象产品族class fruit :public products {};class apple :public fruit {public: void show() { std::cout public: void show() { std::cout };class potato :public vegetable {public: void show() { std::cout public: void show() { std::cout public: virtual fruit* get_fruit() = 0; virtual vegetable* get_vegetable() = 0;};class farm1:public factory {public: fruit* get_fruit() { return new apple; } vegetable* get_vegetable() { return new potato; }};class farm2:public factory {public: fruit* get_fruit() { return new banana; } vegetable* get_vegetable() { return new tomato; }};
上一篇:域名怎么增值?
下一篇:免费手机主机游戏平台