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

莆田网站设计遵义市住房和城乡建设局官方网站

莆田网站设计,遵义市住房和城乡建设局官方网站,宁波网络关键词优化费用,师大暨大网站建设参考#xff1a; 设计模式笔记 简单工厂模式 ● 将类的创建过程交给工厂类实现#xff0c;如果需要一个类对象#xff0c;则直接通过工厂创建一个类。 ● 简单工厂模式不符合开闭原则 ● 适用场景#xff1a;工厂类负责创建的对象比较少#xff1b;客户端只知道传入工厂…参考 设计模式笔记 简单工厂模式 ● 将类的创建过程交给工厂类实现如果需要一个类对象则直接通过工厂创建一个类。 ● 简单工厂模式不符合开闭原则 ● 适用场景工厂类负责创建的对象比较少客户端只知道传入工厂类的参数对于如何创建对象不关心 /* 类的创建过程交给工厂类来实现如果需要一个类的对象则直接通过工厂创建一个对应的类对象 */ #includeiostream using namespace std; class AbstractFruit{ public:virtual void showName()0; };//苹果 class Apple:public AbstractFruit{ public:virtual void showName(){couti am a apppleendl;} }; //香蕉 class Banana:public AbstractFruit{ public:virtual void showName(){couti am a bananaendl;} };//水果工厂 class FruitFactory{ public:static AbstractFruit*createFruit(string type){if(typeapple){return new Apple();}else if(typebanana){return new Banana();}else return nullptr;} };int main(){FruitFactory*factorynew FruitFactory();AbstractFruit*fruitfactory-createFruit(apple);fruit-showName();//i am a apppledelete fruit;fruitfactory-createFruit(banana);fruit-showName();//i am a bananadelete fruit;delete factory;return 0;} 工厂模式简单工厂模式开闭原则 ● 代码扩展时不需要修改工厂类 ● 类急速膨胀不利于维护 ● 适用场景消费者不关心它所要创建的产品类或者知道要创建的产品类二不关心如何创建的时候 /*简单工厂模式开闭原则 */ #includeiostream using namespace std; class AbstractFruit{ public:virtual void showname()0; };class Apple:public AbstractFruit{ public:virtual void showname(){couti am a appleendl;} };class Banana:public AbstractFruit{ public:virtual void showname(){couti am a bananaendl;} }; class Orange:public AbstractFruit{ public:virtual void showname(){couti am an orangeendl;} };//之前是水果工厂如果要添加对象都会在工厂里面添加破坏了开闭原则 //设计成抽象工厂 class AbstractFactory{ public:virtual AbstractFruit*createFruit()0;};//苹果工厂 class AppleFactory:public AbstractFactory{ public:virtual AbstractFruit*createFruit(){return new Apple();} };//香蕉工厂 class BananaFactory:public AbstractFactory{ public:virtual AbstractFruit*createFruit(){return new Banana();} }; //橙子工厂 class OrangeFactory:public AbstractFactory{ public:virtual AbstractFruit*createFruit(){return new Orange();} };int main(){AbstractFactory*factorynew AppleFactory();AbstractFruit*fruitfactory-createFruit();fruit-showname();//i am a appledelete factory;delete fruit;factorynew BananaFactory();fruitfactory-createFruit();fruit-showname(); //i am a bananadelete factory;delete fruit;factorynew OrangeFactory();fruitfactory-createFruit();fruit-showname();//i am an orangedelete factory;delete fruit;return 0;} 抽象工厂模式增加产品族方便 ● 产品族同一产地或者同一产商功能不同 ● 产品等级功能相同产地或者产商不同 ● 不符合开闭原则增加新的产品等级麻烦甚至要在抽象层修改代码 ● 适用场景 系统中有多于一个的产品族。而每次只使用其中某一产品族。可以通过配置文件等方式来使得用户可以动态改变产品族也可以很方便地增加新的产品族。产品等级结构稳定。设计完成之后不会向系统中增加新的产品等级结构或者删除已有的产品等级结构。 /*针对产品族而不是产品等级结构 */ #includeiostream using namespace std; //抽象产品等级 class AbstractApple{ public:virtual void showname()0; }; class AbstractBanana{ public:virtual void showname()0; }; //具体产品等级 //武汉苹果 class AppleFromWhuhan:public AbstractApple{ public:virtual void showname(){cout apple frome whuhanendl;} }; //上海苹果 class AppleFromShanghai:public AbstractApple{ public:virtual void showname(){cout apple frome shanghaiendl;} }; //武汉香蕉 class BananaFromWhuhan:public AbstractBanana{ public:virtual void showname(){cout banana frome whuhanendl;} }; //上海香蕉 class BananafromShanghai:public AbstractBanana{ public:virtual void showname(){coutbanana frome shanghaiendl;} }; //抽象工厂 class AbstractFactory{ public :virtual AbstractApple*createApple()0;virtual AbstractBanana*createBanana()0;}; //武汉工厂 class WhuhanFactory:public AbstractFactory{ public:AbstractApple*createApple(){return new AppleFromWhuhan();}AbstractBanana*createBanana(){return new BananaFromWhuhan();} }; //上海工厂 class ShanghaiFactory:public AbstractFactory{ public:AbstractApple*createApple(){return new AppleFromShanghai();}AbstractBanana*createBanana(){return new BananafromShanghai();} };int main(){AbstractFactory*factorynullptr;AbstractApple*applenullptr;AbstractBanana*banananullptr;//武汉苹果和香蕉factorynew WhuhanFactory();applefactory-createApple();bananafactory-createBanana();apple-showname();// apple frome whuhanbanana-showname();// banana frome whuhandelete factory;delete apple;delete banana;//上海苹果和香蕉factorynew ShanghaiFactory();applefactory-createApple();bananafactory-createBanana();apple-showname();// apple frome shanghaibanana-showname();//banana frome shanghaidelete factory;delete apple;delete banana; }
http://www.huolong8.cn/news/120592/

相关文章:

  • 工信部网站备案进度查询wordpress提高浏览量
  • 做网站泉州网站建设小白到精通需要
  • 梵克雅宝为什么那么贵seo怎么推排名
  • 自建商城网站用什么技术好抓取工具把对手网站的长尾词
  • 顺德营销型网站一站式服务哪家好建设返利网站
  • 免费建手机网站的软件做网站的得花多钱
  • 魔方优化大师官网济宁seo优化公司
  • 网络推广 公司 200个网站wordpress和iss
  • 河南住房与城乡建设部网站wordpress收件邮箱
  • 营销型网站核心要素有哪些网站建设与管理培训方案
  • 广州网站设计制作做网站开发需要考什么证书
  • 网站接入服务提供商网站内部链接优化
  • 重庆网站模板建站公司爱采购
  • 华泰保险公司官方网站怎么知道网站关键词的搜索来源
  • 彩票网站开发制作软件好看的网站排版
  • 类似千图网的素材网站大德通众包网站建设
  • 电子商务物流网站建设规划方案品牌网站建设市场
  • 响应式网页设计名词解释郑州做网站优化的公
  • 徐州市网站开发建立个机密网站
  • 怎么看网站用的什么后台百度ai智能写作工具
  • 国内建站平台有哪些成都网站建设千古互联
  • 网站建设财务规划wordpress手机中文版下载地址
  • 网站被k怎么办佛山市品牌网站建设价格
  • 网站加速cdnWordpress炫酷特效
  • 小白怎么建设网站海淀网站制作
  • 国外做外汇网站交流建设银行支付宝网站
  • 世界建筑设计网站深圳网站设计公司电话
  • 深圳网站建设_请到中投网络互动网站
  • 设计一个网站多少钱网站建设营销型网站
  • 带后台的网站开发运营成本网站建设与推广协议