小故事学设计模式之Observer : (三) 老婆帮忙订机票

编程入门 行业动态 更新时间:2024-10-27 22:33:57

<a href=https://www.elefans.com/category/jswz/34/1752524.html style=小故事学设计模式之Observer : (三) 老婆帮忙订机票"/>

小故事学设计模式之Observer : (三) 老婆帮忙订机票

(IT的事就是过场多,过场多了就容易忘,所以我们不妨看一个记一个,这也是一个办法,顺便还能跟同行们交流一下) 

要和老婆一起回老家了, 成都离我们安徽太远, 两个人飞一下过去就要花掉近三千块, 于是我们决定找找有没有更便宜的机票,

"你帮我找找吧, 如果找到的话,跟我说一下",我说道.

"行!"老婆记住了这事.

很快我得到通知, 南航有更便宜的, 580块.

这是一个简单的observer模式.

什么是observer? 其定义如下:

The Observer Patern defines a one-to-many dependency betwen objects so that when one object changes state, all its dependents are notified and updated automatically.

大概结构来描述就如下:

 

其中Neo(就是我以前在IT混日子的马甲拉)是继承于TicketBuyer这个抽象类的, 为什么这里要加一个抽象类,因为老婆表兄妹多, 都有可能找她订票, 所以要把这些表兄妹的行为抽象到一个公共的抽象类上.


using System; using System.Collections.Generic;public abstract class TicketBuyer {public int TicketPrice;public string Airline; }public class Neo: TicketBuyer {private int _ticketPrice;private string _airline;public int TicketPrice{get {return _ticketPrice;}set {_ticketPrice = value;}}public string Airline{get{return _airline;}set{_airline = value;}} } public class FeiFei {private string _airline;private int _ticketPrice;IList<TicketBuyer> _ticketBuyers;public FeiFei(){_ticketBuyers = new List<TicketBuyer>();}public void AddTicketBuyer(TicketBuyer t){_ticketBuyers.Add(t);}public void DeleteTicketBuyer(TicketBuyer t){_ticketBuyers.Remove(t);}public void NotifyTicketInformation(){SearchTicket();foreach(TicketBuyer t in _ticketBuyers){t.Airline = _airline;t.TicketPrice = _ticketPrice;}}private void SearchTicket(){_airline = "China Southern";_ticketPrice = 580;} }

运行代码看一下结果:

public class Test
{public static void Main(){TicketBuyer n = new Neo();FeiFei f = new FeiFei();f.AddTicketBuyer(n);f.NotifyTicketInformation();Console.WriteLine("Airline:" + n.Airline + ", price:" + n.TicketPrice);Console.Read();}
}


好了,以上是个人对Observer模式的理解,如有不正确的地方,希望同行能帮我纠正。

谢谢大家!

转载于:.html

更多推荐

小故事学设计模式之Observer : (三) 老婆帮忙订机票

本文发布于:2024-02-11 08:34:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1680057.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小故事   订机票   老婆   模式   Observer

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!