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

无锡网站建设优化公司网站seo谷歌

无锡网站建设优化公司,网站seo谷歌,重庆做网站费用,三维角色动画制作工具装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 Component类: abstract class Component : MonoBehaviour {public abstract void Operation(); …

         装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。

Component类:

abstract class Component : MonoBehaviour
{public abstract void Operation();
}

 ConcreteComponent类:

class ConcreteComponent : Component
{public override void Operation(){Debug.Log("具体对象操作");}
}

 Decorator类:

abstract class Decorator : Component
{protected Component component;public void SetComponent(Component component){this.component = component;}public override void Operation(){if(component != null){component.Operation();}}
}

 ConcreteDecoratorA类:

class ConcreteDecoratorA : Decorator
{//此类特有的功能,区别于ConcreteDecoratorBprivate string addState;public override void Operation(){//首先运行元Component的Operation()//再执行本类功能,对原Component进行修饰base.Operation();addState = "new state";Debug.Log("具体装饰对象A的操作");}
}

  ConcreteDecoratorB类:

class ConcreteDecoratorB : Decorator
{public override void Operation(){//首先运行元Component的Operation()//再执行本类功能,对原Component进行修饰base.Operation();AddBehavior();Debug.Log("具体装饰对象B的操作");}//本类特有的方法private void AddBehavior(){}
}

客户端:

class Main : MonoBehaviour
{private void Start(){ConcreteComponent c = new ConcreteComponent();ConcreteDecoratorA a = new ConcreteDecoratorA();ConcreteDecoratorB b = new ConcreteDecoratorB();a.SetComponent(c);b.SetComponent(a);b.Operation();}
}

输出结果:

具体装饰对象A的操作 具体装饰对象B的操作 具体对象操作

        装饰模式是利用SetComponent来对对象进行包装的。这样每个装饰对象的实现就和如何使用这个对象分离开了,每个装饰对象只关心自已的功能,不需要关心如何被添加到对象链当中。        

        如果只有一个Concrete Component类而没有抽象的Component类,那么Decorator类可以是Concrete Component的一个子类。同样道理,如果只有一个Concrete Decorator类,那么就没有必要建立一个单独的Decorator类,而可以把Decorator和Concrete Decorator的责任合并成一个类。

        起初的设计中,当系统需要新功能的时候,是向旧的类中添加新的代码。这些新加的代码通常装饰了原有类的核心职责或主要行为,但这种做法的问题在于,它们在主类中加入了新的字段,新的方法和新的逻辑,从而增加了主类的复杂度,而这些新加入的东西仅仅是为了满足一些只在某种特定情况下才会执行的特殊行为的需要。而装饰模式却提供了一个非常好的解决方案,它把每个要装饰的功能放在单独的类中,并让这个类包装它所要装饰的对象,因此,当需要执行特殊行为时,客户代码就可以在运行时根据需要有选择地、按顺序地使用装饰功能包装对象了。

http://www.hengruixuexiao.com/news/53225.html

相关文章:

  • 安全联盟这种网站建设四川seo推广公司
  • 网站开发有什么工作内容搜狗推广
  • 最权威的做网站优化价格seo网站诊断分析报告
  • 克隆网站带后台关键词优化武汉
  • 微信h5游戏网站建设seo接单平台
  • 网站里可以添加视频做背景吗网站在线客服系统 免费
  • wordpress 用户导入搜索seo优化托管
  • 重庆城乡建设子网站网站排名首页
  • 前程无忧做一年网站多钱公司网站如何seo
  • 免费可以做旅游海报 的网站it培训班出来工作有人要么
  • 做网站保存什么格式最好百度医生
  • 画册设计排版的技巧和规则上海专业优化排名工具
  • 企业信息系统应用应用商店优化
  • 文山北京网站建设石家庄网络关键词排名
  • 网站的表现形式百度网站免费优化软件下载
  • 购买网站开发服务费入账seo教程免费分享
  • 网站开发 弹窗网络广告设计
  • 不用开源程序怎么做网站公司网站免费自建
  • 网站被重定向跳转网站设计是做什么的
  • 免费推广途径seo优化在线诊断
  • 有什么做任务的网站吗怎么做网站主页
  • 如何用自己电脑做网站页面张家界seo
  • 免费建站平台哪个靠谱站长工具亚洲
  • 建网站怎么做资源优化排名网站
  • 犀牛云做网站编辑上传软文广告营销
  • 建设网站要钱么买卖网站
  • 北京建设有限公司信源官方网站怎么注册中视频账号
  • 网页设计怎么创建站点站长工具网站
  • 西安网站制作怎么联系关键词排名点击
  • 网站建设的关键细节阿里云域名注册