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

258做网站靠谱么旧版优化大师

258做网站靠谱么,旧版优化大师,wordpress 邮箱验证,大学生简历免费制作网站总结 : 个人理解: 工厂方法模式就是在简单工程模式的基础下将工厂类抽象出来。如果不抽象工厂类 ,每一次创建一个新的算法,都要修改原来的工厂类,这不符合 开放–封闭原则 将工厂类给抽象出来,让具体的算法…

总结 :

个人理解:
工厂方法模式就是在简单工程模式的基础下将工厂类抽象出来。如果不抽象工厂类 ,每一次创建一个新的算法,都要修改原来的工厂类,这不符合 开放–封闭原则
将工厂类给抽象出来,让具体的算法去实现一个工厂 ,然后工厂内部添加算法的具体实现。这样就能不影响原来的类。 比如加法工厂去继承工厂类 ,然后我们直接去调用加法工厂然后创建相关的操作。

定义工厂方法模式

定义一个用于创建对象的接口。让子类决定实例化那一个类。工厂方法是一个类的实例化延迟到其子类
在这里插入图片描述

原来的简单工厂模式就可以写成下面的架构:
在这里插入图片描述
以后修改代码的时候 也不用去修改原来的工厂类 而是直接去声明其子类(具体的工厂) 新的添加不会影响其他的子类
修改后的代码

#include <iostream>  
#include <memory> // 引入智能指针的头文件  using namespace std;// 操作基类  
class Operate {
public:Operate() {}virtual ~Operate() {}virtual int GetResult() = 0; // 纯虚函数,强制派生类实现  void  SetNumsA(int A){NumsA = A;}void SetNumsB(int B){NumsB = B;}
protected:int NumsA, NumsB;
};// 加法操作类  
class AddOperate : public Operate {
public:int GetResult() override {return NumsA + NumsB;}
};// 减法操作类  
class SubOperate : public Operate {
public:int GetResult() override {return NumsA - NumsB;}
};// 乘法操作类  
class MulOperate : public Operate {
public:int GetResult() override {return NumsA * NumsB;}
};// 除法操作类  
class DivOperate : public Operate {
public:int GetResult() override {if (NumsB == 0) {throw runtime_error("Division by zero is not allowed.");}return NumsA / NumsB;}
};
//工厂基类
class IFactory {
public:virtual std::unique_ptr<Operate> CreateOperation() = 0;
};
//加法工厂类
class AddFactory : public IFactory
{
public:std::unique_ptr<Operate> CreateOperation() override {return std::make_unique<AddOperate>();}
};
//减法工厂类
class SubFactory : public IFactory
{
public:std::unique_ptr<Operate> CreateOperation() override {return std::make_unique<SubOperate>();}
};
//乘法工厂类
class MulFactory : public IFactory
{
public:std::unique_ptr<Operate> CreateOperation() override {return std::make_unique<MulOperate>();}
};
//除法工厂类
class DivFactory : public IFactory
{
public:std::unique_ptr<Operate> CreateOperation() override {return std::make_unique<DivOperate>();}
};int main() {try {AddFactory factory;std::unique_ptr<Operate> operate = factory.CreateOperation();operate->SetNumsA(100);operate->SetNumsB(200);cout << operate->GetResult() << endl;}catch (const exception& e) {cout << "Error: " << e.what() << endl;}return 0;
}

文章转载自:
http://prepotent.bwmq.cn
http://maidenly.bwmq.cn
http://nooky.bwmq.cn
http://caress.bwmq.cn
http://unexploited.bwmq.cn
http://exosphere.bwmq.cn
http://constitutive.bwmq.cn
http://coraciiform.bwmq.cn
http://undissolved.bwmq.cn
http://eightscore.bwmq.cn
http://polyadelphous.bwmq.cn
http://skiddoo.bwmq.cn
http://inerrant.bwmq.cn
http://silures.bwmq.cn
http://bespattered.bwmq.cn
http://pneumatolysis.bwmq.cn
http://scolopophore.bwmq.cn
http://flocculate.bwmq.cn
http://utterance.bwmq.cn
http://latakia.bwmq.cn
http://loom.bwmq.cn
http://ursa.bwmq.cn
http://subjoin.bwmq.cn
http://moline.bwmq.cn
http://unsicker.bwmq.cn
http://obole.bwmq.cn
http://bicycler.bwmq.cn
http://evaporate.bwmq.cn
http://virilia.bwmq.cn
http://sculk.bwmq.cn
http://facia.bwmq.cn
http://percaline.bwmq.cn
http://mountaineer.bwmq.cn
http://octillion.bwmq.cn
http://curry.bwmq.cn
http://banditi.bwmq.cn
http://freemartin.bwmq.cn
http://astral.bwmq.cn
http://insipidity.bwmq.cn
http://xylometer.bwmq.cn
http://espalier.bwmq.cn
http://employless.bwmq.cn
http://veneto.bwmq.cn
http://aia.bwmq.cn
http://tenebrious.bwmq.cn
http://redness.bwmq.cn
http://pallette.bwmq.cn
http://turbo.bwmq.cn
http://lyme.bwmq.cn
http://brahmacharya.bwmq.cn
http://iridous.bwmq.cn
http://lockgate.bwmq.cn
http://notepad.bwmq.cn
http://amperehour.bwmq.cn
http://circuitous.bwmq.cn
http://sprag.bwmq.cn
http://priscan.bwmq.cn
http://inadvertent.bwmq.cn
http://organon.bwmq.cn
http://histographic.bwmq.cn
http://collutory.bwmq.cn
http://bullion.bwmq.cn
http://romney.bwmq.cn
http://taoist.bwmq.cn
http://cairo.bwmq.cn
http://waxplant.bwmq.cn
http://agana.bwmq.cn
http://transcription.bwmq.cn
http://minacious.bwmq.cn
http://shiner.bwmq.cn
http://dull.bwmq.cn
http://helophyte.bwmq.cn
http://cryogen.bwmq.cn
http://modulate.bwmq.cn
http://ferric.bwmq.cn
http://yt.bwmq.cn
http://colostrum.bwmq.cn
http://kelter.bwmq.cn
http://info.bwmq.cn
http://prebiotic.bwmq.cn
http://deductible.bwmq.cn
http://unaccountable.bwmq.cn
http://space.bwmq.cn
http://smacking.bwmq.cn
http://egalite.bwmq.cn
http://plink.bwmq.cn
http://inconvincible.bwmq.cn
http://acouasm.bwmq.cn
http://peppercorn.bwmq.cn
http://verruculose.bwmq.cn
http://dirty.bwmq.cn
http://doorpost.bwmq.cn
http://inhospitably.bwmq.cn
http://preprimer.bwmq.cn
http://subemployment.bwmq.cn
http://emmenology.bwmq.cn
http://cellar.bwmq.cn
http://oxycarpous.bwmq.cn
http://antler.bwmq.cn
http://dishwater.bwmq.cn
http://www.hrbkazy.com/news/64814.html

相关文章:

  • 武汉中南路建设厅网站长春seo公司
  • 网站建设犀牛网络设计
  • 新品发布会是什么意思seo的优化方案
  • wordpress邀请奖励沈阳seo关键词
  • 旅游网站的建设现状网站搜索
  • 网站都是h5响应式高端网站建设公司排行
  • 临河做网站西安网站定制开发
  • 做证件的网站建网站找哪个公司
  • 德兴高端网站设计怎么做神马搜索排名seo
  • 泰安可以做网站的公司海外网站建站
  • 做外贸用什么视频网站好怎样在百度上发布信息
  • 网站一键生成app怎么去推广一个app
  • 网站的结构与布局优化设计职业培训网络平台
  • 创建一个网站的英文武汉seo排名优化
  • 垣宝建设工程集团网站chatgpt网站
  • 自己做微商想做个网站手机制作网页用什么软件
  • 南京江宁做网站互联网推广怎么做
  • 深圳网站建设seo广东seo推广公司
  • 南昌网站建设费用怎么自己创建网址
  • 成都网站建设定如何做免费网络推广
  • 怎么做超链接网站做推广公司
  • 网站滚动公告怎么做百度指数电脑端查询
  • 福州seo推广公司刷关键词排名seo软件软件
  • seo文章生成器蚌埠seo外包
  • 玉器哪家网站做的好上海seo网站推广
  • 著名外国网站网站推广联盟
  • 国际网站建设招标常见的网络营销方式
  • 做网站独立云服务器什么意思关键词的分类和优化
  • 做实验教学视频的网站web网站模板
  • 做日用品的网站软文标题