当前位置: 首页 > news >正文

网站建设的基础服务扫一扫查价格

网站建设的基础服务,扫一扫查价格,人社局网站建设步骤,天津电商网站开发简单工厂模式(Simple Factory Pattern) 是一种创建型设计模式,它定义了一个工厂类,通过这个工厂类可以创建不同类型的对象。简单工厂模式的主要目的是将对象的创建逻辑集中在一个地方,简化客户端的代码,使得…

简单工厂模式(Simple Factory Pattern) 是一种创建型设计模式,它定义了一个工厂类,通过这个工厂类可以创建不同类型的对象。简单工厂模式的主要目的是将对象的创建逻辑集中在一个地方,简化客户端的代码,使得客户端不需要直接实例化具体的类。

简单工厂模式的核心要素:

  1. Product(产品接口):定义了工厂方法所创建的对象的接口。
  2. ConcreteProduct(具体产品):实现了 Product 接口的具体类。
  3. Factory(工厂):提供一个静态方法来创建 Product 对象的实例。

示例:创建不同类型的 Shape 对象

我们将使用简单工厂模式来创建不同类型的 Shape 对象,例如 CircleRectangle

1. 定义 Shape 类(产品接口)
#include <iostream>// Product interface
class Shape {
public:virtual ~Shape() = default;virtual void draw() const = 0;
};

2. 定义 ConcreteProduct 类(具体产品)

// ConcreteProduct 1
class Circle : public Shape {
public:void draw() const override {std::cout << "Drawing a circle." << std::endl;}
};// ConcreteProduct 2
class Rectangle : public Shape {
public:void draw() const override {std::cout << "Drawing a rectangle." << std::endl;}
};

3. 定义 Factory 类(工厂)

#include <string>// Factory
class ShapeFactory {
public:static Shape* createShape(const std::string& type) {if (type == "Circle") {return new Circle();} else if (type == "Rectangle") {return new Rectangle();} else {return nullptr;}}
};

4. 使用简单工厂模式

int main() {// 使用工厂创建不同类型的 Shape 对象Shape* shape1 = ShapeFactory::createShape("Circle");Shape* shape2 = ShapeFactory::createShape("Rectangle");// 调用方法if (shape1) {shape1->draw();}if (shape2) {shape2->draw();}// 清理资源delete shape1;delete shape2;return 0;
}

解释

  1. Shape 类是产品接口,定义了所有具体产品必须实现的方法 draw
  2. CircleRectangle 类是具体产品,它们实现了 Shape 接口的 draw 方法。
  3. ShapeFactory 类是工厂,提供一个静态方法 createShape,根据传入的类型参数创建不同的 Shape 对象。这种方法将对象创建的逻辑集中在工厂类中,简化了客户端的代码。
  4. main 函数 中,通过工厂方法创建 Shape 对象,并调用其 draw 方法进行演示。

简单工厂模式的优点在于它将对象创建的逻辑集中到工厂类中,使得客户端代码变得更简单、更清晰。然而,简单工厂模式也有局限性,例如它违反了开闭原则(即添加新产品时需要修改工厂代码)。在需要扩展产品类型时,可以考虑使用工厂方法模式或抽象工厂模式等更灵活的设计模式。

http://www.yayakq.cn/news/770664/

相关文章:

  • .net开发的网站有哪些辽宁建设工程信息网官网新网址
  • 做公益网站的原因微信支付公司网站
  • 营销型集团网站中国机械加工网站官网
  • 高安网站建设家私家具网上商城
  • 想找人做网站 要怎么选择天津市建行网站
  • 济南环保局官方网站cms监控软件下载官网
  • 有没有做网站的高手南宁做网站费用
  • 吕梁网站开发wordpress侧边导航主题
  • 购买一个网站域名需要多少钱招商广告
  • 网站后台不能审核删除设计师网站推荐家装
  • 皮具网站设计制作网页
  • iis发布asp网站网站建设全屏
  • 用vultr做网站风景网站模版
  • 什么样的网站才是好网站做特效的网站
  • 网站空间流量查询行政审批网站建设规范
  • seo网站建设 厦门公司网站建站要多少钱
  • 合同 制作 网站wordpress+支付查看
  • 深圳市龙岗区住房和建设局官网网站东莞seo排名优化服务
  • 国内软件上市公司排行榜关键词优化举例
  • 青岛市网站建设公司静态网站 插件
  • 深圳做网站排名价格腾讯企业邮箱免费
  • 竞价网站模板重庆app制作
  • 免费网站收录入口苏州seo关键词优化外包
  • 北京汉邦未来网站建设有限公司怎么不花钱建网站
  • 软件项目管理流程白帽seo是什么职业
  • 什么叫网站建设四网合一html编辑器电脑
  • 网站建设策划书编制南京物联网app开发公司
  • 汉语国际网站建设网站优化3个关键词和10个关键词的区别
  • 怎么开发一个网站自己设计家装的app
  • 如何做h5简历制作网站写文章免费的软件