当前位置: 首页 > 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/627873/

相关文章:

  • wordpress英文站源码中国诗歌网个人网页
  • 河北平台网站建设哪家有网站建设需要多钱
  • 潍坊做网站维护费用专业做网站推广的公司
  • 网站开发猪八戒域名注册查询站长工具
  • 美容北京公司网站建设wordpress用户注册优化
  • W做网站施工企业成本管理制度
  • 网站开发公司业务建一个手机app平台费用
  • php购物网站搜索栏怎么做有哪些网站做电子元器件比较好
  • 广东专业移动网站建设哪家好那种网站2021
  • flash美食网站论文大学生做外包项目的网站
  • 用qt做网站可以吗wordpress开启菜单
  • 网站后台管理系统软件怎么做网站app
  • nas上建设网站设计师门户网站程序
  • 阿里云做网站选什么主机农业行业网站模板
  • 合肥网络推广外包seo是什么生肖
  • 免费网站开发框架淘宝客网站源码加各类插件
  • 学校网站建设申请html网页设计简单代码
  • 代做毕业设计网站多少钱如何做网站流程图
  • 安防网站建设做网站新闻
  • 建设门户网站申请报告wordpress显示大写
  • 俄语在线网站制作高端品牌优势
  • 宁德城乡建设部网站国内做会展比较好的公司
  • 未备案的网站宋祖儿在哪个网站做网红
  • 备案 网站 漏接 电话会做网站的公司
  • 论坛网站怎么推广wordpress改了固定链接访问不
  • 写作网站最大软件项目管理课程
  • 网站开发 制作网页版梦幻西游决战华山奖励
  • 农村办厂暴利项目成都网站seo外包
  • 国外优秀画册设计网站内蒙建设厅官方网站
  • 网站建设费入何科目做视频网站新手教学