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

制作网站制作公司网站建设工作室 需要营业执照吗

制作网站制作公司,网站建设工作室 需要营业执照吗,网站模板flash,工程师报考网站抽象工厂模式 抽象工厂模式 抽象工厂模式主要组成部分代码实现抽象工厂模式模式的 UML 图抽象工厂模式 UML 图解析优点和缺点适用场景 抽象工厂模式提供一个接口#xff0c;用于创建一系列相关或相互依赖的对象#xff0c;而无需指定它们的具体类。它通常用于需要创建多个产品…抽象工厂模式 抽象工厂模式 抽象工厂模式主要组成部分代码实现抽象工厂模式模式的 UML 图抽象工厂模式 UML 图解析优点和缺点适用场景 抽象工厂模式提供一个接口用于创建一系列相关或相互依赖的对象而无需指定它们的具体类。它通常用于需要创建多个产品族的场景。 引入“抽象工厂模式”设计模式的定义实现意图提供一个接口让该接口负责创建一系列相关或者相互依赖的对象而无须指定它们具体的类。 主要组成部分 抽象工厂AbstractFactory定义创建抽象产品的接口。它声明了用于创建不同类型产品的方法。具体工厂ConcreteFactory实现抽象工厂接口创建具体产品。每个具体工厂负责生成一组相关的具体产品。抽象产品AbstractProduct定义产品的接口。它为具体产品提供了一个公共的接口。具体产品ConcreteProduct实现抽象产品接口的具体类。每个具体产品对应于一个具体工厂。 代码实现 以下是使用抽象工厂模式创建不同类型的怪物对象的代码示例 #include iostream #include stringusing namespace std;// 怪物父类 class Monster { public:Monster(int life, int magic, int attack) : m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Monster() {} // 虚析构函数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;} };// 所有工厂类的父类 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() override {return new M_Undead_Swamp(300, 50, 120); // 创建沼泽亡灵类怪物}virtual Monster* createMonster_Element() override {return new M_Element_Swamp(200, 80, 110); // 创建沼泽元素类怪物}virtual Monster* createMonster_Mechanic() override {return new M_Mechanic_Swamp(400, 0, 90); // 创建沼泽机械类怪物} };// 山脉地区的工厂 class M_Factory_Mountain : public M_ParFactory { public:virtual Monster* createMonster_Undead() override {return new M_Undead_Mountain(300, 50, 80); // 创建山脉亡灵类怪物}virtual Monster* createMonster_Element() override {return new M_Element_Mountain(200, 80, 100); // 创建山脉元素类怪物}virtual Monster* createMonster_Mechanic() override {return new M_Mechanic_Mountain(600, 0, 110); // 创建山脉机械类怪物} };// 城镇的工厂 class M_Factory_Town : public M_ParFactory { public:virtual Monster* createMonster_Undead() override {return new M_Undead_Town(300, 50, 80); // 创建城镇亡灵类怪物}virtual Monster* createMonster_Element() override {return new M_Element_Town(200, 80, 100); // 创建城镇元素类怪物}virtual Monster* createMonster_Mechanic() override {return new M_Mechanic_Town(400, 0, 110); // 创建城镇机械类怪物} };// 使用示例 int main() {M_ParFactory* factory new M_Factory_Swamp();Monster* undead factory-createMonster_Undead();Monster* element factory-createMonster_Element();Monster* mechanic factory-createMonster_Mechanic();// 释放内存delete undead;delete element;delete mechanic;delete factory;return 0; }抽象工厂模式模式的 UML 图 抽象工厂模式 UML 图解析 类与类之间的关系 Monster 类是所有具体怪物类的父类子类如 M_Undead_Swamp、M_Element_Swamp、M_Mechanic_Swamp 等通过实线箭头与父类连接箭头指向 Monster 类表示继承关系。M_ParFactory 是抽象工厂类定义了创建不同类型怪物的接口。具体工厂类如 M_Factory_Swamp、M_Factory_Mountain、M_Factory_Town通过实线箭头与 M_ParFactory 类连接表示继承关系。 依赖关系 具体工厂类如 M_Factory_Swamp 等与具体怪物类如 M_Undead_Swamp 等之间存在虚线箭头表示依赖关系。具体工厂类负责实例化具体怪物类的对象箭头指向被实例化的类。 稳定与变化部分 稳定部分Monster 类和 M_ParFactory 类是稳定部分不需要频繁修改。变化部分具体怪物类如 M_Undead_Swamp、M_Element_Swamp 等和具体工厂类如 M_Factory_Swamp 等属于变化部分。当需要添加新类型的怪物时只需增加新的具体工厂类和具体怪物类而不需要修改稳定部分。 扩展性 当需要引入新类型的怪物如 M_Beast只需创建一个新的具体工厂类如 M_Factory_Beast和对应的怪物类如 M_Beast而不需要更改现有的工厂接口。这符合开闭原则对扩展开放对修改关闭。 隐藏实现细节 如果 M_ParFactory 类及其具体实现由第三方开发开发者只需通过抽象工厂接口与工厂交互而无需了解具体的怪物类如 M_Undead_Swamp 等实现了对具体实现的隐藏。 接口扩展 M_ParFactory 中的接口可以根据需要进行扩展例如新增创建其他类型对象的方法如 NPC使得工厂能够支持更丰富的对象创建。 优点和缺点 优点 解耦合客户端代码与具体产品的实现解耦便于维护和扩展。修改产品的实现不会影响到客户端。一致性可以确保一组产品的一致性避免在创建产品时出现不匹配的情况。例如创建一个特定类型的怪物时工厂会确保所有相关的属性和行为都符合预期。易于扩展新增产品类型时只需扩展工厂类和相应的产品类而无需修改现有代码符合开闭原则。隔离变化将产品的创建逻辑集中在工厂中减少了产品类之间的依赖便于管理和控制变化。 缺点 系统复杂性增加引入抽象工厂模式会增加系统的复杂性特别是在产品种类较多时工厂类和产品类的数量也会增加。维护成本随着产品族的增加维护抽象工厂及其子类的成本可能会提升特别是当需要对多个工厂进行修改时。难以支持新产品如果需要支持新类型的产品可能需要修改现有的工厂接口和实现这可能导致较大的代码变动。运行时开销由于使用了多层抽象可能会引入一定的运行时开销尤其是在频繁创建对象的场景中。 适用场景 产品族的创建当系统需要创建一组相关或相互依赖的产品时使用抽象工厂模式可以确保产品的一致性和完整性。需要解耦的系统当需要将产品的创建与使用分离减少系统之间的耦合度时抽象工厂模式是一个理想的选择。需要支持多个产品变体在需要支持不同变体的情况下例如不同地区的怪物、不同类型的用户界面组件等抽象工厂模式可以有效管理这些变体。需要扩展产品类型当系统需要频繁扩展新产品类型时抽象工厂模式提供了良好的扩展机制符合开闭原则。框架设计在设计框架或库时抽象工厂模式可以为用户提供灵活的产品创建接口用户可以根据需要实现具体的工厂类。
http://www.hkea.cn/news/14541279/

相关文章:

  • 汕头建站服务页面设计分析
  • 企业手机网站源码下载建站小程序快速上线
  • 什么类型的网站智慧团建登陆网站
  • 没有数据怎么做网站重庆永川网站建设公司
  • wordpress静态主页网站元素优化 移动站
  • 网站方案策划书如何确定网站栏目
  • 宣威市住房和城乡建设局网站下载中心广西城乡建设名网站
  • 两个女孩子怎么做网站专业的内蒙古网站建设
  • 深圳微信商城网站设计联系电话哪些行业做网站多
  • 化妆品网站建设思路python图片wordpress
  • 网站建设龙卡要审批多久时间湖南省建设厅安许审核公布网站
  • 网站建设成本包含哪些方面网站索引量是什么意思
  • 淄博公司做网站临沂设计网站的公司
  • 盐山做网站wordpress可视化编辑器插件
  • 网站建设网站免费wordpress 不提示更新
  • 做网站怎样和客户沟通辽宁平台网站建设哪里好
  • Oss怎么做静态网站手机在线做ppt的网站有哪些
  • 网站视觉网站设计制作太原
  • 上海微信网站建设做网站的程序员留备份
  • 有专做代金券的网站吗效果图制作网站有哪些
  • 建设电子网站试卷织梦网站图片修改
  • 网站改版多久恢复网站制作案例策划
  • app门户网站长宁集团网站建设
  • 专门做ppt背景的网站有哪些电子拜年贺卡在线制作网站
  • 东莞响应式网站建设定制布吉做棋牌网站建设哪家便宜
  • 开封建网站的公司php企业网站开发源码
  • 网站的功能搜索优化指的是什么
  • 为企业设计网站泰州建站程序
  • 做的网站有广告图片网上接做网站的单子
  • 网站后台建设公司广州联雅网络科技有限公司