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

芜湖市建设办网站西部数码网站工具

芜湖市建设办网站,西部数码网站工具,大型网站是用哪种数据库做的,最新足球消息文章目录 示例AOP 很多时候我们不希望一个类变得非常庞大#xff0c;生来就包含很多职责。装饰器模式可以动态地给某个对象添加职责#xff0c;而不会影响从这个类中派生的其他对象 为什么不用继承解决这个问题呢#xff1f;如果用继承有可能会创造出数量庞大的子类#x… 文章目录 示例AOP 很多时候我们不希望一个类变得非常庞大生来就包含很多职责。装饰器模式可以动态地给某个对象添加职责而不会影响从这个类中派生的其他对象 为什么不用继承解决这个问题呢如果用继承有可能会创造出数量庞大的子类而如果把子类的属性变成装饰器就可以灵活自由地组合了就像天冷了要穿一件衣服等等 示例 从结构上看Attack 方法进入了一个包装链先执行火焰技能再执行了闪电技能 // 定义游戏角色接口 interface ICharacter {void Attack(); }// 实现游戏角色类 class Character : ICharacter {public void Attack(){Console.WriteLine(角色进行普通攻击);} }// 装饰器基类 abstract class CharacterDecorator : ICharacter {protected ICharacter character;public CharacterDecorator(ICharacter character){this.character character;}public virtual void Attack(){character.Attack();} }// 具体装饰器类添加火焰技能 class FireDecorator : CharacterDecorator {public FireDecorator(ICharacter character) : base(character){}public override void Attack(){base.Attack();Console.WriteLine(释放火焰技能);} }// 具体装饰器类添加闪电技能 class LightningDecorator : CharacterDecorator {public LightningDecorator(ICharacter character) : base(character){}public override void Attack(){base.Attack();Console.WriteLine(释放闪电技能);} }class Program {static void Main(string[] args){// 创建基本角色ICharacter character new Character();// 添加火焰技能character new FireDecorator(character);// 添加闪电技能character new LightningDecorator(character);// 角色进行攻击character.Attack();// 输出结果// 角色进行普通攻击// 释放火焰技能// 释放闪电技能} }AOP 在这里我们使用了 C# 的 PostSharp 包创建了方法切面监听 当 Attack 执行时会引发 OnEntry 和 OnExit 生命周期 在分离业务代码和数据统计代码中 AOP 十分有效 using PostSharp.Aspects; using System;// 日志记录切面 [Serializable] public class LogAspect : OnMethodBoundaryAspect {public override void OnEntry(MethodExecutionArgs args){Console.WriteLine($[Log] Entering {args.Method.Name});}public override void OnExit(MethodExecutionArgs args){Console.WriteLine($[Log] Exiting {args.Method.Name});} }// 游戏角色类 public class Character {[LogAspect] // 应用日志记录切面public void Attack(){Console.WriteLine(Character attacking!);} }// 使用 AOP 的游戏示例 class Program {static void Main(string[] args){Character character new Character();character.Attack();// 输出结果// [Log] Entering Attack// Character attacking!// [Log] Exiting Attack} }
http://www.dnsts.com.cn/news/71301.html

相关文章:

  • 网站开发的公司属于什么行业网站怎么做啊
  • 做分享衣服网站的初衷是什么怎么制作网站链接转发视频
  • 卖网站模板赚钱吗wordpress不显示评论框
  • 做网站大网站建设东北
  • 对接网站建设是什么意思重庆好玩还是成都好玩
  • 清洁海绵的网站怎么做四川省建设局网站
  • 网站开发工具报告自己做的网站是怎么赚钱吗
  • 手机网站应该怎么做建设网站那个公司好
  • 网站开发人员分工宜宾长宁网站建设
  • 做网站公司上什么平台无锡网络公司
  • 浅谈网站规划建设与管理维护wordpress 4.6.1 exp
  • 视频教学网站怎么做网络公司网站asp
  • 网站左下角广告代码如何用手机建设网站
  • 山西网站建设平台产品外观造型设计
  • 平面设计免费网站做网站多少钱一张页面
  • 东莞网站建设外包flash网站模板修改
  • discuz建站教程微网站怎么注册
  • 网站标签名词wordpress图书主题
  • 英文介绍做美食视频网站wordpress3.4
  • 网站org免费注册自学软装设计该怎么入手
  • 石家庄建设厅网站首页lamp wordpress
  • dw做网站背景音乐龙岩做网站开发哪家厉害
  • 发布做任务网站写作网站5妙不写就删除
  • 网站备案icp备案wordpress 播放器右键
  • 网站建设相关职业岗位职责drupal joomla wordpress 带后台管理
  • 网站建设 目的展厅设计用什么软件
  • 邯郸网站设计怎么申请wordpress 创建一个热门文章分类
  • 影音先锋资源网站建设做网站开发赚钱吗
  • 莆田的外贸网站浏览器里的广告怎么推广的
  • 品牌网站都有哪些上海好的设计公司