最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#設(shè)計模式之Mediator中介者模式解決程序員的七夕緣分問題示例

 更新時間:2017年09月13日 11:35:09   作者:GhostRider  
這篇文章主要介紹了C#設(shè)計模式之Mediator中介者模式解決程序員的七夕緣分問題,簡單說明了中介者模式的定義并結(jié)合七夕緣分問題實例分析了中介者模式的具體使用技巧,需要的朋友可以參考下

本文實例講述了C#設(shè)計模式之Mediator中介者模式解決程序員的七夕緣分問題。分享給大家供大家參考,具體如下:

一、理論定義

中介者模式  定義了一種一對多的操作,解脫了對象之間多對多的引用依賴,所有對象之間的通信,都封裝在 中介者里面。

二、應(yīng)用舉例

需求描述: 七夕來啦,誰說程序員就一定 是單身苦逼呢,程序員也有自己的幸福。

也在追尋自己的緣分,我們都是有理想,有文化,有獨立見解的群體,
我們?yōu)?信息社會所做的努力,能給我們七夕帶來好運。告別單身,開始行動啦!

1.三個程序員 找到了 緣分"YuanFen"大師,希望找到自己另一半,
2.六個美女: 劉詩詩,蔣琴琴,白富美,朱莉,舒淇,語嫣 也找到 緣分"YuanFen" 大師,
希望心中的 白馬王子能給自己一注目光。
3.緣分大師  接受了程序員 和 美女的請求。
4.開始緣分派對啦!

三、具體編碼

1.美女們(Grils)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Com.Design.Gof.Mediator
{
  public class Girls
  {
    /// <summary>
    /// 美女名字
    /// </summary>
    public string Name { get; set; }
    /// <summary>
    /// 找了一個叫“緣分” 的中介者 做媒婆
    /// </summary>
    public YuanFen YuanFen { get; set; }
    /// <summary>
    /// 向自己心目中的 白馬王子發(fā)信
    /// </summary>
    /// <param name="name_message">名字和信息</param>
    public void SendMessage(Dictionary<string,string> name_message) {
      YuanFen.SendToBoys(name_message);
    }
    /// <summary>
    /// 收到某個白馬王子回信
    /// </summary>
    public void RecieveMessage(string msg)
    {
      Console.WriteLine(msg);
    }
  }
}

2. 帥哥程序員

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Com.Design.Gof.Mediator
{
  /// <summary>
  /// 帥哥 1
  /// </summary>
  public class Boys
  {
    /// <summary>
    /// 帥哥名字
    /// </summary>
    public string Name { get; set; }
    /// <summary>
    /// 找了一個叫“緣分” 的中介者 做媒婆
    /// </summary>
    public YuanFen YuanFen { get; set; }
    /// <summary>
    ///向自己心目中的 白雪公主發(fā)信
    /// </summary>
    /// <param name="name_message">名字和信息</param>
    public void SendMessage(Dictionary<string, string> name_message)
    {
      YuanFen.SendToGrils(name_message);
    }
    /// <summary>
    /// 收到某個白雪公主回信
    /// </summary>
    public void RecieveMessage(string msg)
    {
      Console.WriteLine(msg);
    }
  }
}

3.緣分

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Com.Design.Gof.Mediator
{
  public class YuanFen
  {
    public List<Girls> Girls { get; set; }
    public List<Boys> Boys { get; set; }
    /// <summary>
    /// 男孩向女孩發(fā)信
    /// </summary>
    /// <param name="name_message"></param>
    public void SendToGrils(Dictionary<string, string> name_message)
    {
      foreach (var k in name_message) {
        foreach (var girl in Girls) {
          if (k.Key == girl.Name) {
            girl.RecieveMessage(k.Value);
          }
        }
      }
    }
    /// <summary>
    /// 女孩向男孩發(fā)信
    /// </summary>
    /// <param name="name_message"></param>
    public void SendToBoys(Dictionary<string, string> name_message)
    {
      foreach (var k in name_message)
      {
        foreach (var boy in Boys)
        {
          if (k.Key == boy.Name)
          {
            boy.RecieveMessage(k.Value);
          }
        }
      }
    }
  }
}

4.主函數(shù)(派對,發(fā)情書)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Com.Design.Gof.Mediator;
namespace Com.Design.Gof.Test
{
  class Program
  {
    static void Main(string[] args)
    {
      //緣分 這個 媒婆來了
      YuanFen yuanFen = new YuanFen { Boys=new List<Boys>(), Girls=new List<Girls>()};
      //男孩子們?nèi)杠S報名啊
      Boys boy1 = new Boys { Name="程序員1", YuanFen=yuanFen};
      Boys boy2 = new Boys { Name = "程序員2", YuanFen = yuanFen };
      Boys boy3 = new Boys { Name = "程序員3", YuanFen = yuanFen };
      //緣分接受了男孩子的夙愿
      yuanFen.Boys.Add(boy1); yuanFen.Boys.Add(boy2); yuanFen.Boys.Add(boy3);
      //女孩子也很積極
      Girls girls1 = new Girls { Name="劉詩詩", YuanFen=yuanFen};
      Girls girls2 = new Girls { Name = "白富美", YuanFen = yuanFen };
      Girls girls3 = new Girls { Name = "蔣琴琴", YuanFen = yuanFen };
      Girls girls4 = new Girls { Name = "舒淇", YuanFen = yuanFen };
      Girls girls5 = new Girls { Name = "朱莉", YuanFen = yuanFen };
      Girls girls6 = new Girls { Name = "語嫣", YuanFen = yuanFen };
      //緣分接受了美女們的愛情 丘比特
      yuanFen.Girls.Add(girls1); yuanFen.Girls.Add(girls2); yuanFen.Girls.Add(girls3);
      yuanFen.Girls.Add(girls4); yuanFen.Girls.Add(girls5); yuanFen.Girls.Add(girls6);
      //開始派對啦
      //程序員1 對 劉詩詩,蔣琴琴 感興趣
      Dictionary<string, string> name_message = new Dictionary<string, string>();
      name_message.Add("劉詩詩", boy1.Name + " 對劉詩詩說: 詩詩詩詩 我愛你,就像老鼠愛大米");
      name_message.Add("蔣琴琴", boy1.Name + " 對蔣琴琴說: 我希望每天睡前最后看到的人是你...... ");
      boy1.SendMessage(name_message);
      name_message.Clear();
      Console.WriteLine();
      //程序員2 對 劉詩詩,朱莉,舒淇 感興趣
      name_message.Add("語嫣", boy2.Name + " 對語嫣說: 地球仍然轉(zhuǎn)動,世界依舊善變,而我永遠愛你");
      name_message.Add("朱莉", boy2.Name + " 對朱莉說: 每天都 ...很想妳... ");
      name_message.Add("舒淇", boy2.Name + " 對舒淇說: 曾經(jīng)迷惘的心中,是你牽引我走出寂寞 ");
      boy2.SendMessage(name_message);
      name_message.Clear();
      Console.WriteLine();
      //語嫣 對三個程序員都感興趣
      name_message.Add("程序員1", girls6.Name + " 對程序員1說: 想想和我一起看日升日落的喜悅吧!...嘻嘻");
      name_message.Add("程序員2", girls6.Name + " 對程序員2說: 我的世界只有你懂.... ");
      name_message.Add("程序員3", girls6.Name + " 對程序員3說: 因為知道不能沒有你,所以會更珍惜 ");
      girls6.SendMessage(name_message);
      name_message.Clear();
      Console.WriteLine();
      //蔣琴琴 很鐘情,很專一,只給程序員1 發(fā)信
      name_message.Add("程序員1", girls3.Name + " 對程序員1說: 愛你一生伴你一世,你的心跳只有我聽得到");
      girls3.SendMessage(name_message);
      Console.ReadKey();
    }
  }
}

5.運行結(jié)果

6.總結(jié)

七夕來了,找回自己的緣分。

附:完整實例代碼點擊此處本站下載。

更多關(guān)于C#相關(guān)內(nèi)容還可查看本站專題:《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#窗體操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)組操作技巧總結(jié)》及《C#面向?qū)ο蟪绦蛟O(shè)計入門教程

希望本文所述對大家C#程序設(shè)計有所幫助。

相關(guān)文章

  • 使用VS2019生成C#應(yīng)用安裝包的方法步驟

    使用VS2019生成C#應(yīng)用安裝包的方法步驟

    本文主要介紹了使用VS2019生成C#應(yīng)用安裝包的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2022-05-05
  • 關(guān)于C#連接SQL Server時提示用戶登錄失敗的解決方法

    關(guān)于C#連接SQL Server時提示用戶登錄失敗的解決方法

    在用C#開發(fā)windows端程序并連接SQL Server時有可能會遇到數(shù)據(jù)庫登錄失敗的問題,下面小編給大家?guī)砹薈#連接SQL Server時提示用戶登錄失敗的解決方法,感興趣的朋友一起看看吧
    2021-11-11
  • 利用C#實現(xiàn)記事本的功能的示例代碼

    利用C#實現(xiàn)記事本的功能的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)簡單的記事本的功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2023-12-12
  • c#分頁讀取GB文本文件實例

    c#分頁讀取GB文本文件實例

    這篇文章主要介紹了c#分頁讀取GB文本文件的方法,對于C#實現(xiàn)對大數(shù)據(jù)量的讀取非常具有實用價值,需要的朋友可以參考下
    2014-11-11
  • C# 啟動 SQL Server 服務(wù)的實例

    C# 啟動 SQL Server 服務(wù)的實例

    下面小編就為大家分享一篇C# 啟動 SQL Server 服務(wù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#利用插值字符串處理器寫一個sscanf

    C#利用插值字符串處理器寫一個sscanf

    這篇文章主要為大家詳細介紹了C#如何利用插值字符串處理器寫一個sscanf,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下
    2025-02-02
  • C#一個簡單的定時小程序?qū)崿F(xiàn)代碼

    C#一個簡單的定時小程序?qū)崿F(xiàn)代碼

    這篇文章主要介紹了C#實現(xiàn)一個簡單的定時小程序代碼,實現(xiàn)過程很簡單,需要的朋友可以參考下
    2015-09-09
  • C#利用StreamReader和StreamWriter類處理文本的字符編碼使用示例

    C#利用StreamReader和StreamWriter類處理文本的字符編碼使用示例

    .NET Framework 中,StreamReader 和 StreamWriter 類提供了一些方法來處理字符編碼,這篇文章主要介紹了C#利用StreamReader和StreamWriter類處理文本的字符編碼使用示例,需要的朋友可以參考下
    2024-06-06
  • C#實現(xiàn)實體類和XML的相互轉(zhuǎn)換

    C#實現(xiàn)實體類和XML的相互轉(zhuǎn)換

    本文詳細講解了C#實現(xiàn)實體類和XML的相互轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • C#異步編程async/await用法詳解

    C#異步編程async/await用法詳解

    本文詳細講解了C#異步編程async/await的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01

最新評論

镇平县| 哈巴河县| 昌吉市| 铜鼓县| 辛集市| 商都县| 集贤县| 方城县| 大荔县| 额尔古纳市| 通化市| 汝南县| 隆昌县| 古蔺县| 宣恩县| 华宁县| 双江| 乐都县| 隆尧县| 图们市| 漯河市| 苏州市| 巨野县| 昌吉市| 桂平市| 江安县| 灵山县| 庄河市| 繁峙县| 灵川县| 香河县| 吉木萨尔县| 遂平县| 平谷区| 黄梅县| 栾城县| 武城县| 新巴尔虎左旗| 济阳县| 乐都县| 高邑县|