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

做网站用什么工具好推广计划ppt

做网站用什么工具好,推广计划ppt,免费域名空间申请,网上作业网站怎么做的原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 UML 图原型模式 UML 图解析优点和缺点适用场景总结 原型模式 原型(Prototype)模式是一种创建型模式。原型模式通过(原型对象)克隆出对个一模一样的对象。实际上#xff0c;该模式与其说是一种设计模式#xff0c… 原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 UML 图原型模式 UML 图解析优点和缺点适用场景总结 原型模式 原型(Prototype)模式是一种创建型模式。原型模式通过(原型对象)克隆出对个一模一样的对象。实际上该模式与其说是一种设计模式不如说是一种创建对象的方法(对象克隆)尤其是创建给定类的对象(实例)过程很复杂(例如要设置许多成员变量的值)时适用这种设计模式就比较合适。 引入“原型”(Prototype)模式的定义用原型实例指定创建对象的类型并且通过复制这些原型创建新的对象。简单来说就是通过克隆来创建新的对象实例。 主要组成部分 原型接口 (Prototype Interface)定义一个克隆方法通常是 clone()用于复制当前对象的实例。具体原型类 (Concrete Prototype)实现原型接口提供具体的克隆实现。每个具体原型类都可以被克隆以创建新对象。客户端 (Client)使用原型对象来创建新对象。客户端通过调用原型的克隆方法来获得新对象而不是直接使用构造函数。 原型模式的使用步骤 定义原型接口 创建一个包含克隆方法的抽象类 Monster。 //怪物父类 class Monster { public://构造函数Monster(int life, int magic, int attack) :m_life(life), m_magic(magic), m_attack(attack) {}virtual ~Monster() {} //做父类时析构函数应该为虚函数public:virtual Monster* clone() 0; //具体的实现在子类中进行protected: //可能被子类访问的成员用protected修饰//怪物属性int m_life; //生命值int m_magic; //魔法值int m_attack; //攻击力 };实现具体原型类 创建具体的怪物类继承自 Monster并实现 clone() 方法。 //亡灵类怪物 class M_Undead :public Monster { public://构造函数M_Undead(int life, int magic, int attack) :Monster(life, magic, attack){cout 一只亡灵类怪物来到了这个世界 endl;}public://拷贝构造函数M_Undead(const M_Undead tmpobj) :Monster(tmpobj){cout 调用了M_Undead::M_Undead(const M_Undead tmpobj)拷贝构造函数创建了一只亡灵类怪物 endl;}virtual Monster* clone(){return new M_Undead(*this); //触发拷贝构造函数的调用来创建亡灵类怪物}//其他代码略.... };//元素类怪物 class M_Element :public Monster { public://构造函数M_Element(int life, int magic, int attack) :Monster(life, magic, attack){cout 一只元素类怪物来到了这个世界 endl;}public://拷贝构造函数M_Element(const M_Element tmpobj) :Monster(tmpobj) //初始化列表中注意对父类子对象的初始化{cout 调用了M_Element::M_Element(const M_Element tmpobj)拷贝构造函数创建了一只元素类怪物 endl;}virtual Monster* clone(){return new M_Element(*this);}//其他代码略.... };//机械类怪物 class M_Mechanic :public Monster { public://构造函数M_Mechanic(int life, int magic, int attack) :Monster(life, magic, attack){cout 一只机械类怪物来到了这个世界 endl;}public://拷贝构造函数M_Mechanic(const M_Mechanic tmpobj) :Monster(tmpobj){cout 调用了M_Mechanic::M_Mechanic(const M_Mechanic tmpobj)拷贝构造函数创建了一只机械类怪物 endl;}virtual Monster* clone(){return new M_Mechanic(*this);}//其他代码略.... };使用客户端 在客户端代码中创建原型对象并使用克隆方法生成新对象。 int main() {// 创建原型对象Monster* undead new M_Undead(100, 50, 20);Monster* element new M_Element(80, 60, 25);Monster* mechanic new M_Mechanic(120, 30, 30);// 克隆对象Monster* clonedUndead undead-clone();Monster* clonedElement element-clone();Monster* clonedMechanic mechanic-clone();// 使用克隆对象...// 例如可以在这里对克隆对象进行操作或输出属性// 清理内存delete undead;delete element;delete mechanic;delete clonedUndead;delete clonedElement;delete clonedMechanic;return 0; }原型模式的 UML 图 原型模式 UML 图解析 类关系 Prototype原型类这是一个抽象类定义了克隆接口通常是 clone() 方法。在 UML 图中对应于 Monster 类。ConcretePrototype具体原型类这些是实现了 Prototype 接口的具体类负责实现克隆逻辑。图中的 M_Undead、M_Element 和 M_Mechanic 是具体原型类。 稳定与变化 稳定部分Prototype 类如 Monster通常保持不变定义了基本的属性和克隆接口。变化部分ConcretePrototype 类如 M_Undead、M_Element 等是变化的部分可以根据需求添加新的具体类。 信息隐藏 客户端代码与 Prototype 接口交互而不需要了解具体的实现细节。这种设计实现了信息隐藏使得系统更加灵活。 扩展性 新的具体原型类可以通过实现 Prototype 接口来扩展而不需要修改现有的代码结构符合开闭原则。 优点和缺点 优点 简化对象创建通过克隆现有对象避免了复杂的构造过程尤其是当对象需要大量初始化参数时。提高灵活性客户端不需要了解具体的对象创建逻辑只需使用原型进行克隆增强了代码的灵活性和可维护性。支持动态配置可以在运行时决定克隆哪种类型的对象适应性强。 缺点 性能开销克隆对象可能导致较大的内存开销特别是在对象较大或复杂时。深拷贝与浅拷贝需要明确区分深拷贝和浅拷贝错误的实现可能导致共享状态问题。增加复杂性需要实现克隆方法可能会增加代码的复杂性特别是在有多个子类时。 适用场景 对象创建过程复杂当对象的构造过程非常复杂涉及多个参数初始化时使用原型模式可以简化这一过程。需要大量相似对象当需要创建大量相似对象时使用克隆原型可以提高效率。运行时动态创建当对象类型在运行时动态决定时原型模式可以提供灵活的解决方案。避免构造函数的重复调用在需要频繁创建相似对象的场景中原型模式可以避免重复调用构造函数提高性能。 总结 原型模式通过定义 Prototype 和 ConcretePrototype 的关系使得对象的克隆过程更加灵活和高效。客户端只需依赖于 Prototype 接口能够动态创建新的对象实例增强了系统的可扩展性和可维护性。
http://www.sczhlp.com/news/157276/

相关文章:

  • 网站右侧悬浮代码天猫店购买交易平台
  • 北京网站seo报价南京网站建设小程
  • 什么免费网站可以链接域名长沙网页制作
  • 学做企业网站软件人力外包
  • 单页网站模板修改吗特微网站首页
  • 多种郑州网站建设常用网站开发工具
  • 新网站先做外链还是内容郑州做的比较好网站公司吗
  • 固定ip做网站怎么备案wordpress 审核 发布
  • 2025 年水质测定仪厂家 TOP 企业品牌推荐排行榜,多参数,便携式,cod 快速,台式,污水,自来水,养殖,便携式总磷总氮,余氯总氯,废水水质测定仪公司推荐
  • AI+Decodo:构建智能电商价格监控系统的完整实战指南 - 实践
  • 2025无锡考编培训品牌机构公司TOP5推荐:公考培训/事业单位考编/央企国企考编培训机构:权威师资与高效课程深度解析
  • 2025喷雾干燥厂家TOP企业品牌推荐排行榜,无锡,常州喷雾干燥,低温,压力,气流,离心式,压力式喷雾干燥,喷雾干燥塔,设备,装置公司推荐!
  • wordpress 商业网站口碑营销是指
  • 微企点做的网站怎么去底下的网站权重为零
  • 免费网站大全appseo站长工具
  • 卑鄙的网站开发公司wordpress中英
  • 网站被黑了怎么办化工网站建设价格
  • 祖庙网站开发餐饮业建设网站意义
  • 网站推广要点长春网站建设方案报价
  • 南京网站seo提供服务好的网站制作
  • 上线了建站怎么样专业金融网站建设
  • 做一个什么网站好做软件的中介网站
  • 太原seo培训seo资料站
  • 怎样建网站?学生做的网站
  • 网站建设技术教程国内ip地址免费
  • 小企业网站建设一般收费河南省安阳市建设银行网站
  • 网站入口wordpress导航怎么设置
  • 做百度网上搜索引擎推广最好网站移动互联网时代的信息安全与防护超星网课答案
  • 网站透明flashWordPress不能新建页面
  • 做网站需要实名认证吗网站底部导航设置