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

兰州城关区建设局网站网址域名ip

兰州城关区建设局网站,网址域名ip,湖南株洲网站建设,济南互联网运营公司什么是简单工厂模式#xff1f; 简单工厂模式属于创造型模式#xff0c;而工厂就是负责生产和创造的#xff0c;顾名思义。建立对象的类就如一个工厂#xff0c;而需要被建立的对象就是一个个产品#xff1b;在工厂中加工产品#xff0c;使用产品的人#xff0c;不用在…什么是简单工厂模式 简单工厂模式属于创造型模式而工厂就是负责生产和创造的顾名思义。建立对象的类就如一个工厂而需要被建立的对象就是一个个产品在工厂中加工产品使用产品的人不用在乎产品是如何生产出来的。从软件开发的角度来说这样就有效的降低了模块之间的耦合。 简单工厂模式解决了什么问题 客户不用关心工厂内部的构造手段减小了客户使用代码的出错率。这里的客户表示的是使用你代码的人当然你自己就是使用别人代码的人。代码赋予结构性减小了后期开发和维护难度。 简单工厂模式应用场景举例 一个软件系统提供了多个外观不同的按钮它们都继承于按钮类客户希望在使用这些按钮的时候希望使用以下三个步骤来得到 调用工厂给出的创建方法传入目标按钮对应的参数返回目标按钮对象。 上述流程使客户使用该接口时非常方便。 分析如何构造简单工厂模式 有一个可以统一对外输出产品的工厂类(Factory)并且该类提供了一个所有产品的统一构造方法该方法要求传入目标产品对应的参数返回的是目标产品对象一个抽象的产品类(Product)多个具体的产品类(ProductA,ProductB…)继承于抽象的产品类。 简单工厂模式的类图 简单工厂模式的代码示例 #includeiostream #includememory//工厂创造具体产品时输入的参数 typedef enum {A,B }ProductType;//抽象产品类 class Product {public:Product(){std::coutProduct constructorstd::endl;};~Product(){std::coutProduct destructorstd::endl;};virtual void produce()const{};};//具体产品A class ProductA:public Product {public:ProductA(){std::coutProductA constructorstd::endl;};~ProductA(){std::coutProductA destructorstd::endl;};void produce()const {std::cout我是产品 Astd::endl;} };//具体产品B class ProductB:public Product {public:ProductB(){std::coutProductB constructorstd::endl;};~ProductB(){std::coutProductB destructorstd::endl;};void produce()const {std::cout我是产品 Bstd::endl;} };//工厂类 class Factory {public:Factory(){std::coutFactory constructorstd::endl;};~Factory(){std::coutFactory destructorstd::endl;};std::shared_ptrProduct CreateProduct(ProductType type)//面向客户的方法生产对应的产品只需要输入对应的产品类型即可返回生成对应的产品{switch (type){case A:return std::make_sharedProductA();break;case B:return std::make_sharedProductB();break;default:return nullptr;break;}}}; 简单工厂模式的使用步骤和示例 构建工厂构建抽象产品了解具体产品生产具体产品投入使用 示例 // ProductType WeNeedProtductA(){return ProductType::A;}; ProductType WeNeedProtductB(){return ProductType::B;};int main(int argc, char const *argv[]) {//使用步骤1构建工厂Factory factory;//使用步骤2构建抽象产品(客户具体需要什么产品还不知道)std::shared_ptrProductproduct;//使用步骤3客户打电话询问得知需要A类产品ProductType product_type WeNeedProtductA();//使用步骤4已经确定需要的具体产品开始生产product factory.CreateProduct(static_castProductType(product_type));//使用步骤5客户已经得到想要的产品开始投入使用product-produce();return 0; }简单工厂模式的使用示例输出 Factory constructor Product constructor ProductA constructor 我是产品 A ProductA destructor Product destructor Factory destructor 附录 示例代码仓库
http://www.w-s-a.com/news/436148/

相关文章:

  • 怎么在自己的网站加关键词烟台企业网站建设
  • 中山网站建设界面设计职业技能等级证书
  • 做网站首页多少钱免费版企业邮箱注册
  • ppp模式在网站建设的南昌专业做网站公司哪家好
  • 泰安网站建设制作电话号码百度sem竞价托管公司
  • 苏网站建设网页设计和网页美工
  • 跨境电商平台网站广州地铁站路线图
  • 吉林省交通建设集团有限公司网站企业网站推广的策略有哪些
  • 网站内链怎么做更好郑州网站建设哪家便宜
  • 建设大型购物网站运城哪里做网站
  • php企业网站通讯录管理系统做网站在线支付系统多少钱?
  • 怎么区分用vs和dw做的网站贝贝网网站开发背景
  • 无锡网站建设制作建设信息网查询
  • 彩票系统网站开发建设人力资源网官网
  • 有专门下载地图做方案的网站吗网站建设平台计划书
  • 网站闭站保护10个著名摄影网站
  • 安徽省建设工程信息网官网首页网站关键词排名优化工具
  • 深圳网站建设 百业网站专题教程
  • 公司seo是指什么意思如何来做网站优化
  • 化妆品网站建设平台的分析湖南网站搜索排名优化电话
  • 织梦网站修改教程视频教程管理类网站开发价格
  • 如何让新网站快速收录企业建站的作用是什么
  • 在线制作简历的网站做的最好的微电影网站
  • h5制作的网站网络游戏投诉平台
  • 做外贸网站好还是内贸网站好珠海新盈科技有限公 网站建设
  • php和网站开发网络软营销
  • 大型做网站的公司有哪些wordpress注册链接无效
  • 推荐门户网站建设公司网站开发移动端
  • 公司网站的栏目设置成都十大监理公司排名
  • 安溪住房和城乡建设网站关岭县建设局网站