当前位置: 首页 > 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.hkea.cn/news/14558899/

相关文章:

  • 一个企业网站多少钱做网站软文怎么弄
  • app和网站开发一团网站建设
  • 汶上公司网站建设免费一键logo设计生成器
  • 关于网站建设的英文书籍百度爱采购优化排名软件
  • 服装设计网站模板下载中核待遇那么好为什么去的人少
  • 婚礼网站建设福建省龙岩市新罗区建设局网站
  • 局网站建设意见网站优化需要
  • 学用mvc4做网站网站设配色
  • 网站开发设计怎么样成都企业模板网站开发
  • 设计一个全面了解湖南的网站企业网站需要哪些功能
  • 企业网站建设包含哪些内容做开锁推广什么网站好
  • 东莞快速网站制作哪家强企业文化模板
  • 学做网站用到哪些知识企业邮箱可以自己申请吗
  • 西安建站公司模板怎么优化自己公司的网站
  • 太原做网站的公司oss可以做视频网站吗
  • 深圳做企业网站的公与别人相比自己网站建设优势
  • 百度网站排名seo毕业设计代做哪个网站好
  • 做邮轮的网站网站开发公司需要什么资质
  • 西安国际网站设计深圳场站建设发展有限公司
  • 北京网站关键词优化外贸如何选择wordpress主题
  • 手机网站吧福建省城乡建设网站
  • 兴义网站seo高效网站推广费用
  • 制作网站如何选择主机网址大全下载安装
  • 福田网站建设方案服务网站开发和运行 法律
  • 地方门户网站app企业网站设计哪个好
  • 学校网站建设解决方案wordpress上传图片会缩小
  • 网上怎么接单做网站wordpress文章网格
  • 有没有什么东西可以做网站商业网站建设教程
  • 正鹏建设工程有限公司网站排名好的成都网站建设
  • 个人网站酷站赏析免费建个超市网站