C\#디자인 모델 의 Mediator 중개자 모델 해결 프로그래머 의 칠석 인연 문제 예시
이론 적 정의
중개자 모드 한 쌍 의 다 중 조작 을 정의 하고 대상 간 의 다 중 인용 의존 에서 벗 어 나 모든 대상 간 의 통신 은 중개자 안에 포 함 됩 니 다.
2.예 를 들 어
수요 설명:칠석 이 왔 습 니 다.누가 프로그래머 가 싱글 이 라 고 하 겠 습 니까?프로그래머 도 자신의 행복 이 있 습 니 다.
그리고 자신의 인연 을 찾 고 있 습 니 다.우 리 는 모두 이상 적 이 고 문화 적 이 며 독립 적 인 견 해 를 가 진 단체 입 니 다.
우리 가 정보 사 회 를 위 한 노력 은 칠석 에 행운 을 가 져 다 줄 수 있다.싱글 과 작별 하고 행동 을 시작 합 니 다!
1.세 명의 프로그래머 가 자신의 짝 을 찾 고 싶 어 하 는 인연'유 안 펜'스님 을 찾 았 다.
2.여섯 명의 미녀:유시 시,장 금 금 금,백부 미,줄 리,서기,어 언 도 인연'유안 펜'대 사 를 찾 았 다.
마음속 의 백마 탄 왕자 가 자신 에 게 눈길 을 주 었 으 면 좋 겠 습 니 다.
3.인연 의 대가 프로그래머 와 미녀 의 부탁 을 받 아 들 였 다.
4.인연 파 티 를 시작한다!
3.구체 적 인 코딩
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>
///
/// </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>
///
/// </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>
///
/// </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>
///
/// </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.주 함수(파티,발정 서)
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>()};
//
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 + " : , , ");
name_message.Add(" ", boy2.Name + " : ... ... ");
name_message.Add(" ", boy2.Name + " : , ");
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
name_message.Add(" 1", girls3.Name + " 1 : , ");
girls3.SendMessage(name_message);
Console.ReadKey();
}
}
}
5.실행 결과6.총화
칠석 이 되 어 자신의 인연 을 되 찾 았 다.
첨부:전체 인 스 턴 스 코드 는 여 기 를 클릭 하 십시오본 사이트 다운로드
더 많은 C\#관련 내용 은 본 사이트 의 주 제 를 볼 수 있다.,,,,,,
본 고 에서 말 한 것 이 여러분 의 C\#프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.