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

新乡网站建设哪家实力强汉沽网站建设公司

新乡网站建设哪家实力强,汉沽网站建设公司,隆尧网站建设,商业网站建设案例视频主要解决对象的创建问题 首先是简单工厂 只有一个工厂类,每次有新的产品就需要修改里面接口的内容,违反了封闭原则 //1、定义抽象产品类 class AbstractCar { public:AbstractCar() default;virtual ~AbstractCar() default;virtual void showName(…

主要解决对象的创建问题

首先是简单工厂

只有一个工厂类,每次有新的产品就需要修改里面接口的内容,违反了封闭原则

//1、定义抽象产品类
class AbstractCar
{
public:AbstractCar() = default;virtual ~AbstractCar() = default;virtual void showName() = 0;
};//2、实现具体的产品
class CarA :public AbstractCar
{
public:CarA() = default;~CarA() = default;//3、重写虚接口void showName()override{cout << "我是汽车A";}};class CarB :public AbstractCar
{
public:CarB() = default;~CarB() = default;//3、重写虚接口void showName()override{cout << "我是汽车B";}
};//4、定义工厂类
class CarFactory
{
public:CarFactory() = default;~CarFactory() = default;//5、实现创建函数,根据不同的参数创建不同的产品static AbstractCar* createCar(string name){if (name == "carA"){return new CarA;}else if(name=="carB"){return new CarB;}//后续有新的产品,这里就需要加代码,违反了封闭原则}
};int main()
{//外部使用//创建汽车A,直接调用工厂的创建函数AbstractCar* carA = CarFactory::createCar("carA");//创建汽车B,直接调用工厂的创建函数AbstractCar* carB = CarFactory::createCar("carB");carA->showName();carB->showName();return 0;
}

然后是工厂模式

工厂也抽象出来,以后有新的产品,则新加一个具体的工厂类就可以了,不用修改工厂类的代码 

//1、定义抽象产品类
class AbstractCar
{
public:AbstractCar() = default;virtual ~AbstractCar() = default;virtual void showName() = 0;
};//2、实现具体的产品
class CarA :public AbstractCar
{
public:CarA() = default;~CarA() = default;//3、重写虚接口void showName()override{cout << "我是汽车A";}};class CarB :public AbstractCar
{
public:CarB() = default;~CarB() = default;//3、重写虚接口void showName()override{cout << "我是汽车B";}
};//4、定义抽象工厂类
class AbstractCarFactory
{
public:AbstractCarFactory() = default;virtual ~AbstractCarFactory() = default;//5、定义创建接口virtual AbstractCar* createCar() = 0;
};//6、具体的工厂,生产A汽车
class CarAFactory:public AbstractCarFactory
{
public:CarAFactory() = default;~CarAFactory() = default;AbstractCar* createCar() override{return new CarA;}
};//生产B汽车
class CarBFactory :public AbstractCarFactory
{
public:CarBFactory() = default;~CarBFactory() = default;AbstractCar* createCar() override{return new CarB;}
};//.........需要生产新的车 则继续继承重写添加新的工厂,不用修改原来的代码int main()
{//外部使用//A工厂生产汽车ACarAFactory a;AbstractCar* carA = a.createCar();//B工厂生产汽车BCarBFactory b;AbstractCar* carB = b.createCar();carA->showName();carB->showName();delete carA;delete carB;return 0;
}

http://www.yayakq.cn/news/415340/

相关文章:

  • 过年做那个网站致富厦门app定制公司
  • 自己做网站难吗本地php网站搭建
  • 天津做网站的网络公司清风室内设计培训学校
  • 手机扁平化网站模版破解网站后台密码有人做吗
  • 合肥瑶海区深圳搜索引擎优化推广
  • 重庆建设工程安全协会网站南昌制作网站的公司哪家好
  • 嘉兴网站建设网址网页设计作业主题
  • 上海服装集团网站建设网络游戏传奇
  • 做网站要多钱儿童创意产品设计
  • 北京智联招聘官方网站做家政专门做微信公众号的网站
  • 国外摄影网站电脑路由器做网站服务器吗
  • 西宁市城北区建设网站如何创建软件app
  • 专做眼镜的网站中国室内设计师网官网
  • 网站设计制作费用网页设计有哪些岗位
  • 国家建设部网站平台gustos wordpress主题
  • dede添加网站背景360建筑网兼职
  • 宜昌医院网站建设卖磁铁的网站怎么做的
  • 做推广有什么好网站苏州商城网站建设电话
  • 网站访问量统计代码怎么做全屋设计培训哪里有?
  • 中国建设银行网站查余额网页文档
  • 福州网站制作外包网页设计软件vscode
  • 公司建站详细步骤博客网站需求分析
  • 做网站建站ui培训一般多少钱
  • 常用的网站建设程序有那些深圳宝安网站建设
  • 太原制作微信网站温岭建设网站
  • 安岳建设局网站ppt模板免费下载 素材红色
  • 哪里有做网站的免费推广途径与原因
  • 昆山高端网站设计建设wordpress底部版权备案
  • 哈尔滨网站制作招聘搜索引擎的作用
  • 网页设计师常用网站临沂设计网站的公司