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

cms网站怎么制作网站制作预算

cms网站怎么制作,网站制作预算,网页设计题目,宁波网络推广推荐使用工厂模式来生产某类对象(代码简化且容易维护,类之间有血缘关系,可以通过工厂类进行生产); 简单工厂模式(用于创建简单对象) 对于简单工厂模式,需要的工厂类只有一个&#xff1…

使用工厂模式来生产某类对象(代码简化且容易维护,类之间有血缘关系,可以通过工厂类进行生产);

简单工厂模式(用于创建简单对象)

对于简单工厂模式,需要的工厂类只有一个;

在工厂类中的公共成员函数来创建所需对象;

#include <bits/stdc++.h>
using namespace std;
// 产品父类 
class shape{
public:virtual void cal() = 0;virtual ~shape(){}
}; class triangle:public shape{
public:void cal() override{cout<<"三角形面积";}
};class square:public shape{
public:void cal() override{cout<<"正方形面积";}
};class cycle:public shape{
public:void cal() override{cout<<"圆形面积";}
};// 工厂类
enum class Type:char{triangle , square , cycle
};
class fac{
public:shape* creat_kinds(Type type){shape* ptr = nullptr;switch(type){case Type::triangle:ptr = new triangle;break;case Type::square:ptr = new square;break;case Type::cycle:ptr = new cycle;break;}return ptr;}
}; 
int main(){fac* cur = new fac;shape* obj = cur->creat_kinds(Type::cycle);obj->cal();return 0;
}

工厂模式

简单工厂模式会违反开放封闭原则 在添加类时需要修改子类、枚举类、工厂类、和判断代码

工厂模式通过创立N个工厂类来解决上述问题(对简单工厂模式解耦合),对已经写好的代码无需修改;

#include <bits/stdc++.h>
using namespace std;
// 产品父类 
class shape{
public:virtual void cal() = 0;virtual ~shape(){}
}; class triangle:public shape{
public:void cal() override{cout<<"三角形面积"<<endl;}
};class square:public shape{
public:void cal() override{cout<<"正方形面积"<<endl;}
};class cycle:public shape{
public:void cal() override{cout<<"圆形面积"<<endl;}
};// 工厂类
class fac{
public:virtual shape* creat_kinds() = 0;virtual ~fac(){}
}; class triangle_fac:public fac{
public:shape* creat_kinds(){return new triangle;}~triangle_fac(){cout<<"三角形被析构"; }
};
class square_fac:public fac{
public:shape* creat_kinds(){return new square;}~square_fac(){cout<<"三角形被析构"; }
};class cycle_fac:public fac{
public:shape* creat_kinds(){return new cycle;}~cycle_fac(){cout<<"三角形被析构"; }
};
int main(){fac* cur = new cycle_fac;shape* obj = cur->creat_kinds();obj->cal();delete obj;delete cur;return 0;
}

抽象工厂模式

通过造船,船分为三个模块,船体、武器、动力,三个模块又分为了简易、标准、旗舰三个版本

#include <bits/stdc++.h>
using namespace std;
// 三个抽象类 每个抽象类下三个具体派生类
// 抽象工厂类 一个抽象类 三个派生类
class body{
public:virtual void getbody() = 0;virtual ~body(){}
}; class wood_body:public body{
public:void getbody() override{cout<<"船的船体为<木头>---";}
};class iron_body:public body{
public:void getbody() override{cout<<"船的船体为<钢铁>---";}
};class mental_body:public body{
public:void getbody() override{cout<<"船的船体为<合成金属>---";}
};class weapon{
public:virtual void getweapon() = 0;virtual ~weapon(){} 
};class gun_weapon:public weapon{
public:void getweapon() override{cout<<"船的武器为<枪>---" ;}
};class cannon_weapon:public weapon{
public:void getweapon() override{cout<<"船的武器为<炮>---" ;}
};class laser_weapon:public weapon{
public:void getweapon() override{cout<<"船的武器为<激光>---" ;}
};class power{
public:virtual void getpower() = 0;virtual ~power(){} 
}; class human_power:public power{
public:void getpower() override{cout<<"船的动力为<手动>---"; }
};class engine_power:public power{
public:void getpower() override{cout<<"船的动力为<内燃机>---"; }
};class nuclear_power:public power{
public:void getpower() override{cout<<"船的动力为<核反应堆>---"; }
};class ship{
private:body* m_body;weapon* m_weapon;power* m_power;
public:ship(body* o_body , weapon* o_weapon , power* o_power):m_body(o_body) , m_weapon(o_weapon) , m_power(o_power){m_body->getbody();m_weapon->getweapon();m_power->getpower(); }~ ship(){delete m_body;delete m_weapon;delete m_power;} 
};class fac{
public:virtual ship* get() = 0;~ fac(){}
}; class e_fac:public fac{
public:ship* get() override{ship* cur = new ship(new wood_body , new gun_weapon , new human_power);return cur;}
};class m_fac:public fac{
public:ship* get() override{ship* cur = new ship(new iron_body , new cannon_weapon , new engine_power);return cur;}
};class h_fac:public fac{
public:ship* get() override{ship* cur = new ship(new mental_body , new laser_weapon , new nuclear_power);return cur;}
};int main() {fac* cur = new h_fac;ship* res = cur->get();delete cur;delete res;return 0;
}

描述:首先定义三个抽象类,代表船的三个组成部分(船体、武器、动力);每个抽象类下有三个派生类,分别对应初级船、中级船、高级船所用的对应材料。通过ship类将船的三个部分组成起来,一个工厂抽象类fac,通过工厂抽象类的派生类,结合ship类设置三种规格的船。

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

相关文章:

  • 广东省建设监理协会官方网站微信域名防封跳转系统
  • 随州网站建设推荐safari浏览器
  • 怎么用链接进自己做的网站东莞网络营销网络推广软件
  • 开网站平台需要多少钱建筑专业人才招聘网
  • 多个网站建站软考证书有用吗张雪峰
  • 公司网站的设计规划网页版免费
  • 诸暨 外贸网站建设怎么登陆网站后台管理系统
  • 中国建设银行金华分行网站设计师怎么做响应式网站
  • 美食网站建设实施方案网站备案注销查询
  • 漯河网站推广哪家好青岛php网站建设
  • ae成品免费下载网站网站建设经销商
  • 外贸网站样式做网站专用软件
  • 营销网站建设专业团队在线服务运维系统
  • 电子商务网站的设计网站开发与服务合同范本
  • 超链接网站怎么做济南网络广播电视台
  • 黑河城乡建设局网站做本地地旅游网站
  • 网页布局的目的英文seo 文章发布类网站
  • wordpress访问多站点腾讯广告卖东西怎么建设网站
  • 东莞高埗网站建设onedrive 做网站静态
  • 品牌网站官网北京知名网站建设公司
  • 有什么网站可以做微信网站后台管理系统怎么做
  • 六安网站设计公司网站的结构怎么做
  • 云阳如何做网站长沙企业网站建设多少钱
  • 舞钢市城市建设局网站创建网页链接
  • 潜江资讯网最新招聘信息湛江市seo网站设计报价
  • 重庆网站制作系统网页代理地址
  • 找个网站懂的网站网页设计 效果图
  • 天津市武清区建设银行网站做环保网站案例
  • 网站搭建文案html个人网页制作模板
  • 国内网站建设代理网站建设服务器主板1150针