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

qq官方网站百度公司招聘官网

qq官方网站,百度公司招聘官网,微信商城如何开通,惠济区建设局网站原型模式是一种创建型设计模式#xff0c;它通过复制现有对象来创建新对象#xff0c;而无需通过实例化的方式。它允许我们使用已经存在的对象作为蓝本#xff0c;从而创建新的对象#xff0c;这样可以避免重复初始化相似的对象#xff0c;提高了对象的创建效率。 现在给…原型模式是一种创建型设计模式它通过复制现有对象来创建新对象而无需通过实例化的方式。它允许我们使用已经存在的对象作为蓝本从而创建新的对象这样可以避免重复初始化相似的对象提高了对象的创建效率。 现在给您出一个题目 假设您正在设计一个游戏角色的生成器系统其中包含不同种类的角色例如战士、法师和射手等。请使用原型模式来设计该系统的角色生成器。角色生成器需要具备以下功能 根据已有的角色原型生成新的角色对象。 不同类型的角色对象具有不同的属性如姓名、等级、技能等。 用户可以根据需要选择不同类型的角色并生成对应的角色对象。 请根据以上要求使用原型模式设计该角色生成器系统并简要说明您的设计思路。 代码 // 角色原型接口 interface ICharacterPrototype {ICharacterPrototype Clone();void ShowInfo(); }// 战士角色原型 class Warrior : ICharacterPrototype {public string Name { get; set; }public int Level { get; set; }public Liststring Skills { get; set; }public ICharacterPrototype Clone(){return (ICharacterPrototype)MemberwiseClone();}public void ShowInfo(){Console.WriteLine($战士角色: {Name} (等级: {Level}));Console.WriteLine(技能列表:);foreach (string skill in Skills){Console.WriteLine($ - {skill});}} }// 法师角色原型 class Mage : ICharacterPrototype {public string Name { get; set; }public int Level { get; set; }public Liststring Spells { get; set; }public ICharacterPrototype Clone(){return (ICharacterPrototype)MemberwiseClone();}public void ShowInfo(){Console.WriteLine($法师角色: {Name} (等级: {Level}));Console.WriteLine(法术列表:);foreach (string spell in Spells){Console.WriteLine($ - {spell});}} }// 射手角色原型 class Archer : ICharacterPrototype {public string Name { get; set; }public int Level { get; set; }public int Arrows { get; set; }public ICharacterPrototype Clone(){return (ICharacterPrototype)MemberwiseClone();}public void ShowInfo(){Console.WriteLine($射手角色: {Name} (等级: {Level}));Console.WriteLine($箭矢数量: {Arrows});} }class Program {static void Main(string[] args){// 初始化角色原型Warrior warriorPrototype new Warrior{Name 战士,Level 10,Skills new Liststring { 近身攻击, 重击 }};Mage magePrototype new Mage{Name 法师,Level 8,Spells new Liststring { 火球术, 闪电术 }};Archer archerPrototype new Archer{Name 射手,Level 6,Arrows 50};// 根据原型克隆生成新角色对象ICharacterPrototype warrior warriorPrototype.Clone();ICharacterPrototype mage magePrototype.Clone();ICharacterPrototype archer archerPrototype.Clone();// 显示角色信息warrior.ShowInfo();mage.ShowInfo();archer.ShowInfo();} } 这段代码中的 Clone() 方法是用于复制角色原型对象的方法。在这里使用了 MemberwiseClone() 方法来执行浅拷贝即创建一个与原对象相同的新对象并将原对象的值类型成员和引用类型成员的引用复制给新对象。MemberwiseClone() 方法是 C# 中的内置方法它会创建对象的浅表副本即对于值类型成员会直接复制其值对于引用类型成员只会复制引用而不会创建新的对象。这意味着如果原对象的引用类型成员发生了改变克隆对象的对应成员也会受到影响。需要注意的是MemberwiseClone() 方法是浅拷贝对于包含复杂对象的成员可能需要实现自定义的深拷贝逻辑来确保对象的完全复制。在这个示例中由于角色原型的成员都是基本数据类型和字符串因此浅拷贝已足够满足需求并且使用简单方便。
http://www.w-s-a.com/news/9687/

相关文章:

  • 网站建设教程搭建青岛中企动力做网站怎么样
  • wordpress最底部网站优化怎么弄
  • 二手市场网站建设的目的长沙ui设计公司
  • 微信公众号做留言网站wordpress详情页选择模板
  • php网站开发面向对象教程如何做分享赚钱的网站
  • 山东网站建设最便宜常州网站建站公司
  • 网站地图 seo中国建设招标网是私人网站吗
  • 高中作文网站全网营销有哪些平台
  • 网站构建建设制作平台上海搬家公司收费价目表
  • 成功案例展示网站做网站赚多少钱
  • 建设银行网站用什么字体网站建站后维护需要做哪些
  • 有哪些做平面设计好素材网站有哪些开网站建设
  • 国际交流网站平台有哪些筑建网
  • 网站程序是如何开发的江门市住房建设管理局网站
  • 网站建设一般需要几个步骤昵图网免费素材
  • 个人网站建设需求说明书微信域名防封在线生成
  • 专业网站建设的公司wordpress后台没有模板
  • 哈尔滨网站运营服务商制作外贸网站公司
  • 个人网站需要备案宁波网站推广工具
  • 苏州建设银行网站首页wordpress修改密码
  • 网站建设员工技能要求网站制作简单协议
  • 没有ipc备案的网站wordpress isux主题
  • 清远做网站电子商务网站建设需要的语言及特点6
  • 万州那家做网站c语言基础知识入门
  • 齐河网站建设公司价格网站建设包括什么
  • 论坛网站开发费用怎么把文件放到网站的根目录
  • 海南省零售户电商网站官渡区住房和城乡建设局网站
  • 怎么找淘宝客网站最新军事战况
  • 缺乏门户网站建设网页设计与制作项目教程第二版
  • 手机网站横竖屏一般做建设的是什么公司