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

简述创建一个网站的过程网站地市频道建设

简述创建一个网站的过程,网站地市频道建设,wordpress 判断页面,万金娱乐网站开发主要解决对象的创建问题 首先是简单工厂 只有一个工厂类,每次有新的产品就需要修改里面接口的内容,违反了封闭原则 //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/782409/

相关文章:

  • 辽宁平台网站建设平台云典 wordpress
  • 代刷网站是怎么做的WordPress下如何用页面做侧边栏
  • 长沙推广网站去除wordpress概览
  • 四川网站设计成功柚米科技wordpress技术站主题
  • 网站admin目录名怎么改html5国内网站
  • 广州网站建设V芯ee8888e廊坊百度提升优化
  • 有没有专门做印刷图的网站抖音推广项目计划书
  • 电子商务网站建设体会与收获学室内装修设计需要什么条件
  • 做货源网站可以赚钱吗建设企业网站官方登录
  • 栾城区住房建设局官方网站用python写一个简单的网站
  • 安徽网站建设做网站怎么申请百度推广
  • .net搭建企业网站牛商网网站建设多少钱
  • 学做网页的网站网站数据库购买
  • 玩具网站建设网络营销推广方式
  • 永久免费网站淮阳住房和城乡建设网站
  • 网站注册免费如何制作微信公众号文章
  • 林业建设协会网站天元建设集团有限公司承兑汇票兑付
  • 神马网站排名辽宁网站建设fengyan
  • 卖文章的网站源码办公软件
  • 管理型网站建设费用明细网站制作产品优化
  • 汽车网站建设策划书图片外链在线生成网址
  • 计算机网络技术电商网站建设与运营方向菜谱网站后台代码
  • seo网站建设刘贺稳营销专家a凡科建站容易吗
  • 网站服务器错误403wordpress 去掉分类
  • 网站推广有哪些手段做特卖网站有哪些
  • 郑州市网站建设怎么样电子商务网站开发应遵循的基本原则
  • seo在线网站诊断推推蛙皇家梅陇公馆网站建设
  • 网站商城功能模块泉州大型网站设计公司
  • 网站名称怎么变更谷歌推广代理
  • 华春建设工程项目管理有限公司网站北京招聘网站建设