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

长沙网站主机潍坊网站建设平台

长沙网站主机,潍坊网站建设平台,进入网络管理的网站,承德很好的网络建站2023年12月6日,周三下午 今天又学习了一次简单工厂模式 每多学习一次,都会加深对设计模式的理解 目录 什么是简单工厂模式简单工厂模式的优缺点举例说明 什么是简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种创建型…

2023年12月6日,周三下午

今天又学习了一次简单工厂模式

每多学习一次,都会加深对设计模式的理解


目录

  • 什么是简单工厂模式
  • 简单工厂模式的优缺点
  • 举例说明

什么是简单工厂模式

简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一种通过使用一个共同的接口来创建不同类型对象的方法。

在简单工厂模式中,有一个工厂类负责创建对象,而不是直接在客户端代码中实例化对象。客户端只需要通过向工厂类发送请求,并传递相应的参数,工厂类就会根据参数的不同来创建具体的对象。

简单工厂模式包含以下几个角色:

  • 工厂类(Factory Class):负责根据客户端的请求创建对象,并将对象返回给客户端。
  • 抽象产品类(Abstract Product Class):定义了产品的共同接口,用于描述具体产品类的共同特征。
  • 具体产品类(Concrete Product Class):实现了抽象产品类的接口,具体产品类是由工厂类创建的对象。

简单工厂模式的优缺点

简单工厂模式的优势在于将对象的创建和使用进行了分离,客户端只需要关心如何使用对象,而无需关心对象的创建过程。这样可以降低代码的耦合性,并提供了一定的灵活性,如果需要新增或修改产品,只需要修改工厂类即可。

然而,简单工厂模式也有一些限制。例如,当需要创建的产品类型较多时,工厂类的代码会变得复杂,违反了开闭原则。此外,简单工厂模式也无法满足创建对象的变化需求,需要借助其他的创建型设计模式,如工厂方法模式或抽象工厂模式。

举例说明

#include <iostream>// 抽象产品类
class Shape {
public:virtual void draw() = 0;
};// 具体产品类:圆形
class Circle : public Shape {
public:void draw() override {std::cout << "Draw a circle." << std::endl;}
};// 具体产品类:矩形
class Rectangle : public Shape {
public:void draw() override {std::cout << "Draw a rectangle." << std::endl;}
};// 工厂类
class ShapeFactory {
public:// 创建具体产品对象的方法Shape* createShape(const std::string& type) {if (type == "circle") {return new Circle();} else if (type == "rectangle") {return new Rectangle();} else {return nullptr; // 可以根据实际情况返回默认的或者异常处理}}
};int main() {ShapeFactory factory;Shape* shape1 = factory.createShape("circle");shape1->draw();  // 输出:Draw a circle.Shape* shape2 = factory.createShape("rectangle");shape2->draw();  // 输出:Draw a rectangle.return 0;
}

http://www.khdw.cn/news/45435.html

相关文章:

  • 灌南网站开发市场营销策划方案范文
  • 做3d动画的斑马网站搜索引擎优化包括哪些方面
  • 乌鲁木齐做网站公司电商营销的策略与方法
  • 中国wordpress用的人少以下哪个单词表示搜索引擎优化
  • 南宁网站建设推广优化谷歌google官方网站
  • 如何做彩票网站信息百度学术官网论文查重免费
  • 网站建设与制作区别信息流优化师培训
  • 开发网站建设windows优化大师有哪些功能
  • 网站开发步骤说明书网站老域名跳转到新域名
  • 宁波专业做网站公司线上营销推广方案
  • 贵州门户网站建设网站seo什么意思
  • 做微信平台网站需要多少钱免费私人网站建设
  • 如何学做网站怎么策划一个营销方案
  • 怎么做福彩网站友链申请
  • 网站推广的目的有哪些公司怎么建立自己的网站
  • 两学一做知识竞赛试题网站深圳seo培训
  • 重庆大足网站制作公司哪家专业bt鹦鹉磁力
  • 浏览器正能量网站免费软件新浪网今日乌鲁木齐新闻
  • 东莞市建网站seo和点击付费的区别
  • 网站建设接口开发网络推广合作协议范本
  • 有什么免费的wordpress宁波怎么优化seo关键词
  • 如何做后台管理员网站培训心得体会总结简短
  • 学编程选什么专业seo免费浏览网站
  • 南京的网站建设公司新品上市怎么推广词
  • Wordpress托管 点点成都seo顾问
  • wordpress播放seo网站优化流程
  • 学网站建设专业前景站长号
  • 一个网站怎么做软件下载查域名备案
  • 在阿里云做的网站怎么移动网络营销该如何发展
  • 做海岛旅游预定网站的怎样开网站