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

网站建设策划案营业执照网上年审

网站建设策划案,营业执照网上年审,营销页面制作,域名注册需要哪些条件原型模式 原型模式主要组成部分原型模式的使用步骤原型模式的 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.eeditor.cn/news/122369/

相关文章:

  • 宣威市网站建设律师事务所网站 备案
  • 网站搭建南京石家庄网站建设招商
  • 企业网站推广工具做彩票网站代理
  • 请打开网站沈阳平台网站建设
  • 青岛建手机网站哪家好wordpress模板调用数据库
  • 网站如何快速被收录郴州网站建设公司有哪些
  • 天河建设网站哪个好苏州吴中区seo关键词优化排名
  • 想看别人的wordpress博客网站公司开通网站
  • 做淘宝网站买个模版可以吗wordpress的安装教程视频
  • 宁波网站运营优化系统快站公众号
  • 保定专业网站制作推广软件是什么工作
  • 微商的自己做网站叫什么软件下载音乐网站建设流程
  • 中国网站排行榜做ip资讯的网站
  • 网站建设公司推荐金石下拉g公司网站需求分析
  • 如何建设一个查询系统网站建设企业银行网站
  • 网站整站建设免费建造网站
  • 域名邮箱和域名网站微信网页版app
  • 柴沟堡做网站公司营销推广方法有哪些
  • 怎么做网站促收录网站建设 好
  • 柳州网站推广哪家好商务网站建设实训过程
  • 西安公司建一个网站需要多少钱可信网站认证 代理商
  • 福州制作手机网站常州 做网站
  • 手机企业网站制作个人网站建设方案策划
  • 个人网站有哪些平台jquery 显示 wordpress
  • 什么样的网站适合优化怎样建设学校网站
  • 成都住房和城乡建设局网站网站产品二级分类
  • 网站用户体验方案做电器哪个网站好
  • 响应式网站模板 视差网络机房建设公司
  • 什么是网站服务器名称上海网站建设网页设
  • 网站设计策划书黄岐网站制作