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

网站开发常用的数据库深圳专业英文网站建设

网站开发常用的数据库,深圳专业英文网站建设,东莞vi设计公司,沈阳模板建站方案动机(Motivate)#xff1a; 在软件构建过程中#xff0c;一个请求可能被多个对象处理#xff0c;但是每个请求在运行时只能有一个接受者#xff0c;如果显示指定#xff0c;将必不可少地带来请求发送者与接受者的紧耦合。 如何使请求的发送者不需要指定具体的接受…动机(Motivate)     在软件构建过程中一个请求可能被多个对象处理但是每个请求在运行时只能有一个接受者如果显示指定将必不可少地带来请求发送者与接受者的紧耦合。     如何使请求的发送者不需要指定具体的接受者让请求的接受者自己在运行时决定来处理请求从而使两者解耦。意图(Intent)     使多个对象都有机会处理请求从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链并沿着这条链传递该请求直到有一个对象处理它为止。结构图(Struct):              适用性     1.有多个对象可以处理一个请求哪个对象处理该请求运行时刻自动确定。     2.你想在不明确接收者的情况下向多个对象中的一个提交一个请求。     3.可处理一个请求的对象集合应被动态指定。生活中的例子                代码实现            1     //Handler  2    abstract class Approver  3     {  4        protected Approver successor;  5        public void SetSuccessor(Approver successor)  6        {  7            this.successor  successor;  8        }  9        public abstract void ProcessRequest(Purchase purchase); 10  11     } 12  13  14  1     //ConcreteHandler  2     class Director :Approver  3     {  4         public override void ProcessRequest(Purchase purchase)  5         {  6             if (purchase.Amount  10000.0)  7             {  8                 Console.WriteLine({0} approved request# {1}, this.GetType().Name, purchase.Number);  9  10             } 11             else if(successor !null) 12             { 13                 successor.ProcessRequest(purchase); 14             } 15         } 16     } 1   2   3   4     class VicePresident :Approver  5     {  6         public override void ProcessRequest(Purchase purchase)  7         {  8             if (purchase.Amount  25000.0)  9             { 10                 Console.WriteLine({0} approved request# {1}, this.GetType().Name, purchase.Number); 11  12             } 13             else if (successor ! null) 14             { 15                 successor.ProcessRequest(purchase); 16             } 17         } 18     } 1   2     class President :Approver  3     {  4         public override void ProcessRequest(Purchase purchase)  5         {  6             if (purchase.Amount  100000.0)  7             {  8                 Console.WriteLine({0} approved request# {1}, this.GetType().Name, purchase.Number);  9  10             } 11             else 12             { 13                 Console.WriteLine(Request! {0} requires an executive meeting!, purchase.Number); 14             } 15         } 16     } 1   2   3     //Request details  4     class Purchase  5     {  6         private int number;  7         private double amount;  8         private string purpose;  9  10         //Constructor 11         public Purchase(int number, double amount, string purpose) 12         { 13             this.number  number; 14             this.amount  amount; 15             this.purpose  purpose; 16         } 17         //Properties 18         public double Amount 19         { 20             get { return amount; } 21             set { amount  value; } 22         } 23         public string Purpose 24         { 25             get { return purpose; } 26             set { purpose  value; } 27         } 28         public int Number 29         { 30             get { return number; } 31             set { number  value; } 32         } 33     } 客户端调用如下 1   2     class Program  3     {  4         static void Main(string[] args)  5         {  6             //Setup Chain of Responsibility  7             Director Larry  new Director();  8             VicePresident Sam  new VicePresident();  9             President Tammy  new President(); 10             Larry.SetSuccessor(Sam); 11             Sam.SetSuccessor(Tammy); 12  13             //Generate and process purchase requests 14             Purchase p  new Purchase(1034, 350.00, Supplies); 15             Larry.ProcessRequest(p); 16  17             p  new Purchase(2035, 32590.10, Project X); 18             Larry.ProcessRequest(p); 19  20             p  new Purchase(2036, 122100.00, Project Y); 21             Larry.ProcessRequest(p); 22  23             //Wait for user 24             Console.Read(); 25         } 26     } 运行结果如下                Chain of Responsibility实现要点     1.Chain of Responsibility模式的应用场合在于“一个请求可能有多个接受者但是最后真正的接受者只胡一个”只有这时候请求发送者与接受者的耦合才胡可能出现“变化脆弱”的症状职责链的目的就是将二者解耦从而更好地应对变化。     2.应用了Chain of Responsibility模式后对象的职责分派将更具灵活性。我们可以在运行时动态添加/修改请求的处理职责。     3.如果请求传递到职责链的未尾仍得不到处理应该有一个合理的缺省机制。这也是每一个接受对象的责任而不是发出请求的对象的责任。
http://www.zqtcl.cn/news/219505/

相关文章:

  • 青海网站建设系统电商出口营销要多少钱
  • 上海的网站设计公司百度上做优化
  • 连云港权威网站优化服务如何自己做解析网站
  • 学校网站建设调研报告wordpress update_post_meta
  • 法人变更在哪个网站做公示做企业平台的网站有哪些
  • 制作网站过程有免费的网站域名吗
  • 简单做网站用什么软件价格优惠
  • 在线自助下单网站建设银行上海分行招聘网站
  • 网站备案期间停止解析网站改版后 存在大量404页面
  • 朝阳网站建设 国展东莞常平邮政编码多少
  • 深圳网站建设微赢天下做视频网站服务器多少钱
  • 中小企业网站建设与管理课后答案wordpress主题 亚马逊
  • 网站制作关键技术上海网站建设收费
  • 深圳做互联网教网站公司集团管理软件
  • 华宁网站建设网站建设与维护新的体会
  • 网站后台清空北京网站建设厂家
  • 济南建设银行网站应用制作app软件
  • 网站开发实习个人小结关于做展厅的网站
  • 网站设计三把火如何制作动漫网站模板
  • 重庆做网站 哪个好些嘛开通qq空间申请网址
  • 制作网站 太原买的电脑没有wordpress
  • 图书馆建设投稿网站可信网站认证logo
  • 专做阀门网站网站如何做银联在线支付
  • 南通网站seo网页制作图片轮播
  • 高端品牌网站建设哪家好中医网站模板
  • 怎么做多语言网站图片添加文字在线制作
  • js特效演示网站wordpress本地视频
  • 徐州做网站哪个好上海国际人才网
  • 黑龙江省城乡和住房建设厅网站首页公司营业执照查询
  • 锦州北京网站建设支付公司网站建设会计分录