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

网站开发用什么软件有哪些国家高新技术企业名单

网站开发用什么软件有哪些,国家高新技术企业名单,做网站设计比较好的公司,庆阳网站设计价格装饰模式是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 优点: 1.灵…

装饰模式是一种结构型设计模式,它允许向一个现有的对象添加新的功能,同时又不改变其结构。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。

优点:

1.灵活性高:可以在运行时动态地为对象添加或删除功能,而不需要修改对象的原有代码。
2.可扩展性强:可以通过组合不同的装饰器,为对象添加多种不同的功能,满足不同的需求。
3.符合开闭原则:对扩展开放,对修改关闭。当需要添加新的功能时,只需要创建新的装饰器类,而不需要修改原有的代码。

缺点:

1.产生过多的小对象:大量小型装饰器类导致类数量膨胀,增加了系统的复杂性和内存开销。
优化:对象池复用。
2.调试困难:多层装饰器的嵌套可能会导致调试困难,因为很难确定每个装饰器的具体作用。

说明例子:

1.UML类图

2.实现

1.定义绘制类:

   public class DrawEngine{public void Render(string ObjName){Debug.Log("Render:" + ObjName);}}

2.定义形状类接口以及形状实现:

  //形状接口类public abstract class ISingleShape{protected DrawEngine m_engine = null;public virtual void SetRenderEngine(DrawEngine renderEngine){m_engine = renderEngine;}public abstract void Draw();public abstract string GetPolygon();}public class SingleSphere : ISingleShape{public override void Draw(){m_engine.Render("Draw SingleSphere");}public override string GetPolygon(){return "Single Sphere 多边形";}}

3.定义附加功能接口以及实现类:

    //附加功能实现public abstract class IAdditional{protected DrawEngine m_engine = null;public void SetRenderEngine(DrawEngine renderEngine){m_engine = renderEngine;}public abstract void DrawOnShape(ISingleShape theShape);}//外框类public class Border : IAdditional{public override void DrawOnShape(ISingleShape theShape){m_engine.Render("Draw Border On" + theShape.GetPolygon());}}

4. 定义形状装饰器接口类和实现类:

    //形状装饰器接口类public abstract class ISingleShapeDecorator : ISingleShape{ISingleShape m_Component;public ISingleShapeDecorator(ISingleShape theComponent){m_Component = theComponent;}public override void Draw(){m_Component.Draw();}public override string GetPolygon(){return m_Component.GetPolygon(); }}//外框装饰器类public class BorderDecorator : ISingleShapeDecorator{//外框功能Border m_Border = null;public BorderDecorator(ISingleShape theComponent):base(theComponent) { m_Border = new Border(); }public override void SetRenderEngine(DrawEngine renderEngine){base.SetRenderEngine(renderEngine);m_Border.SetRenderEngine(renderEngine);}public override void Draw(){//被装饰者功能base.Draw();//外框功能m_Border.DrawOnShape(this);}}

5.测试类:

  public class DecoratorPattern : MonoBehaviour{// Start is called before the first frame updatevoid Start(){DrawEngine theDraw = new DrawEngine();SingleSphere theSphere = new SingleSphere();theSphere.SetRenderEngine(theDraw);BorderDecorator theSphereWithBorder = new BorderDecorator(theSphere);theSphereWithBorder.SetRenderEngine(theDraw);theSphereWithBorder.Draw();}}

游戏中的使用场景:

1.角色属性加成系统​:装备/Buff 需要动态叠加属性且支持多种组合。
2.技能效果叠加​:基础技能需要支持动态添加元素效果(冰冻/燃烧/中毒)。
3.UI 系统增强​:需要动态为UI组件添加装饰效果(边框/阴影/动画)。
4.游戏状态叠加​:角色状态需要支持多种Buff/Debuff叠加(加速/中毒/隐身)​​​​​​​。
5.音效系统增强​:需要动态调整音效(回声/混响/音量调节)​​​​​​​。
6.成就系统扩展​:基础成就需要支持条件叠加(首次达成/困难模式/无伤通关)。

总结:

通过装饰器模式,可在不修改现有对象结构的情况下,动态添加功能。在游戏开发中,这种模式特别适合实现装备系统技能修饰UI增强等需要灵活组合的场景。

参考书籍:

《Hands-On Game Development Patterns with Unity 2019》

《设计模式与游戏完美开发》

http://www.dtcms.com/wzjs/270585.html

相关文章:

  • 青岛哪家做网站的公司好爱站seo查询
  • 江西手机版建站系统开发开平网站设计
  • 吉林省电力建设总公司网站矿产网站建设价格
  • 网站建设里面链接打不开seo的方法有哪些
  • 代做效果图网站哪家好百度搜索次数统计
  • 20g虚拟主机建设网站seo引擎优化是做什么的
  • php做网站视频播放下载功能合肥关键词排名工具
  • 网站数据库怎么做同步软件排名优化
  • 广东网站建设公司排名优化seo深圳
  • 网络运维工程师薪酬厦门seo推广优化
  • 南昌网站建设公司在线排名优化
  • 北京外贸网站制作公司seo收录排名
  • 安丘住房建设局网站如何做好网站站内优化
  • 招远网站建设价格许昌网络推广外包
  • xps13适合网站开发吗近两年成功的网络营销案例及分析
  • 长沙seo优化方案yoast seo教程
  • wordpress超链接插件网站seo优化推广外包
  • 商业网站建设软件网购平台推广方案
  • 西安市建设局官方网站网络营销网站平台有哪些
  • 长沙市住房和城乡建设局网站芭蕉视频app无限次数
  • 做网站源码流程营销策划的概念
  • 南京网站建设包括哪些上海网站seo外包
  • 去什么网站找做电影的素材seo职业
  • 创建一个互联网媒体公司seo面试常见问题及答案
  • 网站开发攻略最新足球消息
  • 做网站用香港哪个机房四年级小新闻50字左右
  • 做 网络网站网站制作的基本流程是什么
  • 石排仿做网站百度搜索平台
  • 做卡盟网站教程关键词有哪些关联词
  • 一个门户网站怎么做海外建站