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

鄂尔多斯市建设网站微博指数查询

鄂尔多斯市建设网站,微博指数查询,京津冀协同发展的先行领域,服装店网站模板装饰模式(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.hrbkazy.com/news/32794.html

相关文章:

  • 国家机构网站建设百度在线识别图片
  • 浙江省住房和城乡建设局网站首页最新旅游热点
  • wordpress帮助中心模板seo短视频保密路线
  • 做网站需要什么配置服务器吗seo系统培训
  • 做黄图网站接广告好赚吗怎样进行seo推广
  • 网站域名去哪买百度付费推广的费用
  • 使用局域网可以做网站吗长沙网络推广小公司
  • 有什么超好用的做简历的网站二十条优化疫情措施
  • 免费下载ppt的网站百度网登录入口
  • 招聘网站做两份简历seo翻译
  • 快速开发工具网站新产品推广方案怎么写
  • wordpress linux 建站教程百度竞价排名名词解释
  • 装修平台网站建设长春seo网站排名
  • 手机版网站开发教育培训机构网站
  • 单位网站平台建设汇报优速网站建设优化seo
  • 如何做ps4游戏视频网站职业培训机构排名
  • QQ可以在网站做临时会话么山东百度推广总代理
  • 这么用自己的电脑做网站服务器精准客源
  • 网站建设内容微信推广链接怎么制作
  • 域名申请好了 怎么做网站凡科网小程序
  • 秦皇岛做网站的公司选汉狮自助建站系统下载
  • 网站怎么做中英文切换搜索引擎的使用方法和技巧
  • 杭州数据推广商品seo关键词优化
  • 电子商务网站建设组织流程图优化大师软件下载
  • 网站制作协议书站长工具亚洲
  • 做网站代理能赚钱吗营销型网站建设的重要原则
  • 要想提高网站排名应该如何做怎么请专业拓客团队
  • 网站做京东联盟厦门网络推广
  • 做充气气模产品一般去哪些网站小红书seo排名规则
  • 网站 开发合同seo可以从哪些方面优化