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

网站内页做友链京东优惠券网站建设

网站内页做友链,京东优惠券网站建设,个人站长网站,安装wordpress数据库错误这三种模式#xff0c; 都是创建类型的模式#xff0c; 将对象的创建流程封装起来供客户调用 简单工厂模式 简介: 和策略模式一样#xff0c;就是针对不通的参数#xff0c; 返回不通的实例而已 问题: 没有遵循开闭原则#xff0c; 如果我们想增加一种类#xff0c; 那…这三种模式 都是创建类型的模式 将对象的创建流程封装起来供客户调用 简单工厂模式 简介: 和策略模式一样就是针对不通的参数 返回不通的实例而已 问题: 没有遵循开闭原则 如果我们想增加一种类 那么就要修改工厂的核心代码这违反了对修改关闭的原则, 于是有了 工厂方法模式 策略模式和简单工厂模式的代码用例 class Operator { public:int first, second;Operator() {};Operator(int a, int b) : first(a), second(b) {};virtual int get_result() 0; };class AddOperator : public Operator { public:AddOperator() {};AddOperator(int a, int b) : Operator(a, b) {};int get_result() override{return first second;} };class MulOperator : public Operator { public:MulOperator() {};MulOperator(int a, int b) : Operator(a, b) {};int get_result() override{return first * second;} };// strategy int get_result(char _type, int a, int b) {Operator* o{};if (_type )o new AddOperator(a, b);if (_type *)o new MulOperator(a, b);return o-get_result(); }// simple factory class OperatorFactory { public:Operator* get_operator(char c){Operator* o{};if (c )o new AddOperator();if (c *)o new MulOperator();return o;} };int main() {//策略模式int a get_result(, 1, 2);cout a endl;int b get_result(*, 8, 9);cout b endl;// 简单工厂模式OperatorFactory* op_factory new OperatorFactory();Operator* o op_factory-get_operator();o-first 1;o-second 2;cout o-get_result() endl; }工厂方法模式 简介: 在简单工厂的基础上遵循开闭原则, 每个工厂都只产出自己的类 那么再有新的类要加入的时候 我们只需要添加一个工厂子类 和 目标子类就行了 问题: 工厂只能产出一种目标类的实例, 这样的话, 系统中类一多, 工厂就会太多. 代码 class Operator { public:int first, second;Operator() {};Operator(int a, int b) : first(a), second(b) {};virtual int get_result() 0; };class AddOperator : public Operator { public:AddOperator() {};AddOperator(int a, int b) : Operator(a, b) {};int get_result() override{return first second;} };class MulOperator : public Operator { public:MulOperator() {};MulOperator(int a, int b) : Operator(a, b) {};int get_result() override{return first * second;} };class Factory { public:virtual Operator* get_operator(int a, int b) 0; };class AddFactory : public Factory { public:Operator* get_operator(int a, int b) override{Operator* op new AddOperator(a, b);return op;} };class MulFactory : public Factory { public:Operator* get_operator(int a, int b) override{Operator* op new MulOperator(a, b);return op;} };int main() {// 工厂方法模式AddFactory* add_f new AddFactory();Operator* op add_f-get_operator(1, 2);cout op-get_result() endl; } 抽象工厂模式 简介: 一个工厂产出一系列互相关联的类的实例, 实现产品簇的效果 代码 class SoftWare { public:SoftWare() {}; };class AndroidSoftWare : public SoftWare { public:AndroidSoftWare() {}; };class IosSoftWare : public SoftWare { public:IosSoftWare() {}; };class Phone { public:SoftWare* ware;virtual void set_soft_ware(SoftWare* ware) 0; };class XiaoMiPhone : public Phone { public:void set_soft_ware(SoftWare* w) override{cout xiao mi phone set android soft ware endl;ware w;} };class IosPhone : public Phone { public:void set_soft_ware(SoftWare* w) override{cout ios phone set ios soft ware endl;ware w;} };// 这种情况下, 用抽象工厂模式, 就不会出错, 不会出现iosphone配上了android soft ware的情况 // 不然在实际项目中, 配错很可能会出现严重后果 class AbstractFactory { public:virtual Phone* create_phone() 0;virtual SoftWare* create_soft_ware() 0; };class XiaoMiFactory : public AbstractFactory {Phone* create_phone() override{Phone* p new XiaoMiPhone();return p;}SoftWare* create_soft_ware() override{SoftWare* sw new AndroidSoftWare();return sw;} };class IosFactory : public AbstractFactory {Phone* create_phone() override{Phone* p new IosPhone();return p;}SoftWare* create_soft_ware() override{SoftWare* sw new IosSoftWare();return sw;} }; int main() {// 很多情况下, 工厂不止是生产一种类, 而是生产一整套互相关联的类, 这样一个工厂, 就是抽象工厂模式AbstractFactory* af new XiaoMiFactory();Phone* p1 af-create_phone();SoftWare* sw af-create_soft_ware();p1-set_soft_ware(sw);af new IosFactory();Phone* p2 af-create_phone();SoftWare* sw2 af-create_soft_ware();p2-set_soft_ware(sw2); }
http://www.hkea.cn/news/14496412/

相关文章:

  • 嘉祥网站建设哪家便宜公众号开发难吗
  • 建设通类型网站叫啥网站排名提升工具免费
  • 可以做分销的网站现在建设网站都用什么软件
  • 各种网站app购买了域名怎么使用
  • 个体网站建设网站建设风格
  • 医院网站 整站源码wordpress头像同步
  • 公司注册地址与实际经营地址不符长春seo服务
  • 网站开发从入门到实战生产型或服务型企业网站有哪些
  • 爱玖货源站网站解析设置
  • 上海网站建设价位如何设定网站关键词
  • 物流公司网站建设模板旅游网站建设翻译
  • 大型网站建设翻译英文营销案例100例小故事
  • 网站建设与管理任务分工高端网站价格
  • 网站安全建设总结报告网站建设加盟合作
  • 高端网站设计费用免费制作论坛网站模板
  • 什么网站可以免费做视频的软件下载网站彩票怎么做
  • 做分类信息网站如何郴州新网交友
  • 专业做网站设计公司价格百度云盘下载
  • 网站的维护和更新电子商务网站建设的核心
  • 网站开发案列三门峡企业网站建设公司
  • 济宁亿峰科技做网站一年多少费用网络营销课程论文
  • 网站建设难点和重点开发公司网签的流程
  • 店面门头在线设计网站个人门户网站备案
  • 主机屋网站空间的IPwordpress 禁用可视化
  • 微信网站开发视频站长工具排名分析
  • 彩票网站 模块黄页网如何注册
  • 摄影行业网站wordpress 两边
  • 淘客网站佣金建设在哪做网站建设
  • dedecms精仿学校网站模板宜家在线设计
  • 哪些网站可以做招生信息如何制作企业网站的版式