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

长治做网站的公司门户网站建设与管理办法

长治做网站的公司,门户网站建设与管理办法,建筑工程网络数据安全管理系统,windows wordpress伪静态问题的提出 从前面我们已经使用了工厂方法模式 解决了一些问题。 现在 策划又提出了新的需求#xff1a;对于各个怪物#xff0c;在不同的场景下#xff0c;怪物的面板数值会发生变化#xff0c; //怪物分类#xff1a;亡灵类#xff0c;元素类#xff0c;机械类 …问题的提出 从前面我们已经使用了工厂方法模式 解决了一些问题。 现在 策划又提出了新的需求对于各个怪物在不同的场景下怪物的面板数值会发生变化 //怪物分类亡灵类元素类机械类     //战斗场景分类沼泽地区山脉地区城镇。 那么就有9类怪物沼泽地亡灵类、元素类、机械类山脉地区亡灵类、元素类、机械类城镇中的亡灵类、元素类、机械类     //工厂方法模式一个工厂创建一种类怪物。我们就要创建9个工厂了。 抽象模式的核心思想 //但如果一个工厂子类能够创建不止一种而是多种具有相同规则的怪物对象那么就可以有效的减少所创建的工厂子类数量这就是抽象工厂模式的核心思想。   两个概念a)产品等级结构   b)产品族 在这里我们先要弄清楚 两个概念a)产品等级结构   b)产品族     //抽象工厂模式是按照产品族来生产产品产地相同的用一个工厂来生产——一个地点有一个工厂该工厂负责生产本产地的所有产品。   代码实现 第一步肯定是先将9个类先弄出来 第二步第二步定义一个抽象工厂类 //所有工厂类的父类 第三步具体沼泽地区的工厂 #include iostream using namespace std;namespace _namespace1 {//第一步定义9个怪物和其父类//怪物父类class Monster{public://构造函数Monster(int life, int magic, int attack) :m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Monster() {} //做父类时析构函数应该为虚函数protected://可能被子类访问的成员所以用protected修饰//怪物属性int m_life; //生命值int m_magic; //魔法值int m_attack; //攻击力};//沼泽亡灵类怪物class M_Undead_Swamp :public Monster{public:M_Undead_Swamp(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个沼泽的亡灵类怪物来到了这个世界 endl;}};//沼泽元素类怪物class M_Element_Swamp :public Monster{public:M_Element_Swamp(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个沼泽的元素类怪物来到了这个世界 endl;}};//沼泽机械类怪物class M_Mechanic_Swamp :public Monster{public:M_Mechanic_Swamp(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个沼泽的机械类怪物来到了这个世界 endl;}};//--------------------------//山脉亡灵类怪物class M_Undead_Mountain :public Monster{public:M_Undead_Mountain(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个山脉的亡灵类怪物来到了这个世界 endl;}};//山脉元素类怪物class M_Element_Mountain :public Monster{public:M_Element_Mountain(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个山脉的元素类怪物来到了这个世界 endl;}};//山脉机械类怪物class M_Mechanic_Mountain :public Monster{public:M_Mechanic_Mountain(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个山脉的机械类怪物来到了这个世界 endl;}};//--------------------------//城镇亡灵类怪物class M_Undead_Town :public Monster{public:M_Undead_Town(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个城镇的亡灵类怪物来到了这个世界 endl;}};//城镇元素类怪物class M_Element_Town :public Monster{public:M_Element_Town(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个城镇的元素类怪物来到了这个世界 endl;}};//城镇机械类怪物class M_Mechanic_Town :public Monster{public:M_Mechanic_Town(int life, int magic, int attack) :Monster(life, magic, attack){cout 一个城镇的机械类怪物来到了这个世界 endl;}};//如上已经把9个怪物定义出来了//第二步定义一个抽象工厂类//所有工厂类的父类class M_ParFactory{public:virtual Monster* createMonster_Undead() 0; //创建亡灵类怪物virtual Monster* createMonster_Element() 0; //创建元素类怪物virtual Monster* createMonster_Mechanic() 0; //创建机械类怪物virtual ~M_ParFactory() {} //做父类时析构函数应该为虚函数};//沼泽地区的工厂class M_Factory_Swamp :public M_ParFactory{public:virtual Monster* createMonster_Undead(){return new M_Undead_Swamp(300, 50, 120); //创建沼泽亡灵类怪物}virtual Monster* createMonster_Element(){return new M_Element_Swamp(200, 80, 110); //创建沼泽元素类怪物}virtual Monster* createMonster_Mechanic(){return new M_Mechanic_Swamp(400, 0, 90); //创建沼泽机械类怪物}};//--------------------------//山脉地区的工厂class M_Factory_Mountain :public M_ParFactory{public:virtual Monster* createMonster_Undead(){return new M_Undead_Mountain(300, 50, 80); //创建山脉亡灵类怪物}virtual Monster* createMonster_Element(){return new M_Element_Mountain(200, 80, 100); //创建山脉元素类怪物}virtual Monster* createMonster_Mechanic(){return new M_Mechanic_Mountain(600, 0, 110); //创建山脉机械类怪物}};//--------------------------//城镇的工厂class M_Factory_Town :public M_ParFactory{public:virtual Monster* createMonster_Undead(){return new M_Undead_Town(300, 50, 80); //创建城镇亡灵类怪物}virtual Monster* createMonster_Element(){return new M_Element_Town(200, 80, 100); //创建城镇元素类怪物}virtual Monster* createMonster_Mechanic(){return new M_Mechanic_Town(400, 0, 110); //创建城镇机械类怪物}};}int main() {_namespace1::M_ParFactory* p_mou_fy new _namespace1::M_Factory_Mountain(); //多态工厂山脉地区的工厂_namespace1::Monster* pM1 p_mou_fy-createMonster_Element(); //创建山脉地区的元素类怪物_namespace1::M_ParFactory* p_twn_fy new _namespace1::M_Factory_Town(); //多态工厂城镇的工厂_namespace1::Monster* pM2 p_twn_fy-createMonster_Undead(); //创建城镇地区的亡灵类怪物_namespace1::Monster* pM3 p_twn_fy-createMonster_Mechanic(); //创建城镇地区的机械类怪物//释放资源//释放工厂delete p_mou_fy;delete p_twn_fy;delete pM1;delete pM2;delete pM3;return 0; } 第二个例子 不同厂商生产不同部件范例     //芭比娃娃身体包括头、颈部、躯干、四肢、衣服、鞋子     //中国日本美国 厂商     //要求制作两个芭比娃娃第一个身体衣服鞋子全部采用中国厂商制造的部件。                             //第二个身体采用中国厂商衣服部件采用日本厂商鞋子部件采用美国厂商。     //类的设计思路     //a)将身体衣服鞋子 这三个部件实现为抽象类。     //b)实现一个抽象工厂分别用来生产身体、衣服、鞋子这三个部件。     //c)针对不同厂商的每个部件实现具体的类以及每个厂商所代表的具体工厂。 namespace _nmsp3 {//身体抽象类class Body{public:virtual void getName() 0;virtual ~Body() {}};//衣服抽象类class Clothes{public:virtual void getName() 0;virtual ~Clothes() {}};//鞋子抽象类class Shoes{public:virtual void getName() 0;virtual ~Shoes() {}};//---------------------------//抽象工厂类class AbstractFactory{public://所创建的部件应该稳定的保持这三个部件才适合抽象工厂模式virtual Body* createBody() 0; //创建身体virtual Clothes* createClothes() 0; //创建衣服virtual Shoes* createShoes() 0; //创建鞋子virtual ~AbstractFactory() {}};//---------------------------//芭比娃娃类class BarbieDoll{public://构造函数BarbieDoll(Body* tmpbody, Clothes* tmpclothes, Shoes* tmpshoes){body tmpbody;clothes tmpclothes;shoes tmpshoes;}void Assemble() //组装芭比娃娃{cout 成功组装了一个芭比娃娃 endl;body-getName();clothes-getName();shoes-getName();}private:Body* body;Clothes* clothes;Shoes* shoes;};//---------------------------//中国厂商实现的三个部件class China_Body :public Body{public:virtual void getName(){cout 中国厂商产的_身体部件 endl;}};class China_Clothes :public Clothes{public:virtual void getName(){cout 中国厂商产的_衣服部件 endl;}};class China_Shoes :public Shoes{public:virtual void getName(){cout 中国厂商产的_鞋子部件 endl;}};//创建一个中国工厂class ChinaFactory : public AbstractFactory{public:virtual Body* createBody(){return new China_Body;}virtual Clothes* createClothes(){return new China_Clothes;}virtual Shoes* createShoes(){return new China_Shoes;}};//---------------------------//日本厂商实现的三个部件class Japan_Body :public Body{public:virtual void getName(){cout 日本厂商产的_身体部件 endl;}};class Japan_Clothes :public Clothes{public:virtual void getName(){cout 日本厂商产的_衣服部件 endl;}};class Japan_Shoes :public Shoes{public:virtual void getName(){cout 日本厂商产的_鞋子部件 endl;}};//创建一个日本工厂class JapanFactory : public AbstractFactory{public:virtual Body* createBody(){return new Japan_Body;}virtual Clothes* createClothes(){return new Japan_Clothes;}virtual Shoes* createShoes(){return new Japan_Shoes;}};//---------------------------//美国厂商实现的三个部件class America_Body :public Body{public:virtual void getName(){cout 美国厂商产的_身体部件 endl;}};class America_Clothes :public Clothes{public:virtual void getName(){cout 美国厂商产的_衣服部件 endl;}};class America_Shoes :public Shoes{public:virtual void getName(){cout 美国厂商产的_鞋子部件 endl;}};//创建一个美国工厂class AmericaFactory : public AbstractFactory{public:virtual Body* createBody(){return new America_Body;}virtual Clothes* createClothes(){return new America_Clothes;}virtual Shoes* createShoes(){return new America_Shoes;}}; }int main() {//创建第一个芭比娃娃------------//(1)创建一个中国工厂_nmsp3::AbstractFactory* pChinaFactory new _nmsp3::ChinaFactory();//(2)创建中国产的各种部件_nmsp3::Body* pChinaBody pChinaFactory-createBody();_nmsp3::Clothes* pChinaClothes pChinaFactory-createClothes();_nmsp3::Shoes* pChinaShoes pChinaFactory-createShoes();//(3)创建芭比娃娃_nmsp3::BarbieDoll* pbd1obj new _nmsp3::BarbieDoll(pChinaBody, pChinaClothes, pChinaShoes);pbd1obj-Assemble(); //组装芭比娃娃cout ------------------------------------- endl;//创建第二个芭比娃娃------------//(1)创建另外两个工厂日本工厂美国工厂_nmsp3::AbstractFactory* pJapanFactory new _nmsp3::JapanFactory();_nmsp3::AbstractFactory* pAmericaFactory new _nmsp3::AmericaFactory();//(2)创建中国产的身体部件日本产的衣服部件美国产的鞋子部件_nmsp3::Body* pChinaBody2 pChinaFactory-createBody();_nmsp3::Clothes* pJapanClothes pJapanFactory-createClothes();_nmsp3::Shoes* pAmericaShoes pAmericaFactory-createShoes();//(3)创建芭比娃娃_nmsp3::BarbieDoll* pbd2obj new _nmsp3::BarbieDoll(pChinaBody2, pJapanClothes, pAmericaShoes);pbd2obj-Assemble(); //组装芭比娃娃//最后记得释放内存----------------delete pbd1obj;delete pChinaShoes;delete pChinaClothes;delete pChinaBody;delete pChinaFactory;//------------delete pbd2obj;delete pAmericaShoes;delete pJapanClothes;delete pChinaBody2;delete pAmericaFactory;delete pJapanFactory;return 0; } 工厂方法模式 和 抽象工厂模式的区别 //工厂方法模式和抽象工厂模式区别     //a)工厂方法模式:一个工厂生产一个产品     //b)抽象工厂模式:一个工厂生产多个产品产品族 //抽象工厂模式的定义实现意图提供一个接口AbstractFactory            //让该接口负责创建一系列相关或者相互依赖的对象(Body,Clothes,Shoes)而无需指定他们具体的类。
http://www.sczhlp.com/news/192043/

相关文章:

  • 天津做网站开发的凡科网建站模板
  • 电子商务网站建设与管理英文网页设计素材加工
  • visio网站建设流程图颜色调配网站
  • nginx网站301重定向怎么做wordpress网络科技公司模板
  • 教学网站建设论文wordpress python导入
  • 南宁网站建设王道下拉強网站建设制作苏州
  • 西双版纳建设厅网站网站建设论文结束语
  • 1 建设网站目的是什么wordpress 上传ssl证书
  • 基层建设期刊上什么网站查询文章h5编辑软件
  • 域名备案关闭网站吗用dw做网站 主题是哪个
  • 外贸网站模版成都新站软件快速排名
  • 做网站做什么好坪地网站建设价格
  • 北京公司建设网站wordpress后台添加自定义输入框
  • 郑州建站价格国内无版权图片网站
  • dw设计一个简单网站微信小程序短链接生成
  • 广东网站备案要求wordpress建立商业网站
  • 购物网站建设行情wordpress熊掌号改造
  • 什么样的网站容易做seo广州网站建设找哪家
  • 网站设计优缺点四川建设考试培训网
  • 个人搭建网站登录入口注册
  • 黑河网站建设公司豆瓣中需要优化的网站标签
  • 电影网站做流量网页qq登录保护不让用
  • 网站建设工作基本流程常州企业网站建设
  • 做网站需要什么文件有没有免费的室内设计软件
  • 江苏两学一做网站论文中网站数据如何做脚注
  • 电子商务网站建设与维护的考试唯美音乐图文网站建设
  • 行业词汇
  • 博客园地址 - yuyue
  • 【终章】:幸福的复利——打造你的每日幸福微习惯 - 指南
  • 事业单位网站设计沈阳做网站 0诚金网络专业