小A:“師兄,如果能舉個例子的話,那就更好了。”
大B:“好。沒問題的。那就舉個通俗的模式吧!就拿一個男人和女人通過媒人約會的例子來實現這種設計模式吧。”
1、明確,男人和女人如果約會,假設男方提出約會(女方提出過程類似)。如果沒有媒人,該過程如下:
A、男方如果想和女方約會
B、首先請示自己的父母(假設是封建家庭哦……),
C、然後通知女方
D、女方需要請示女方父母,是否同意約會。
弊端:需要男方交換的對象太多,且關係複雜,當隨著男女之間的交往的複雜,會涉及到更多複雜的交換,雙方父母的交換也很更複雜,使得四個對象(男、女、男方家長、女方家長)關係複雜,難以控製。
模式改進:采取媒人做‘中介者’-模式,將變得簡單,其中無論那一個人有什麼要求,請求,隻需要告訴‘媒人’,至於該請求需要告訴誰,和誰交換,隻有媒人知道。
//模擬代碼類如下:
(this);//把自己在媒人那裏注冊(聲明)
*考慮是否同意
(“男人考慮:我該不該同意呢……”);
(“我同意了”);
(“我不同意。”);
*提出約會
*男人提出約會,隻需要告訴媒人,由媒人負責跟其他人交互。
(男人提出約會請求,說:+says);
*《p》Title:男方家長類《/p》
(this);//把自己在媒人那裏注冊(聲明)
*考慮是否同意
(“男方父母考慮:我們做父母的該不該同意呢……”);
(“我們做父母的同意了”);
(“我們做父母的不同意。”);
*《p》Title:女人類《/p》
(this);//把自己在媒人那裏注冊(聲明)
*考慮是否同意
(“女人考慮:我該不該同意呢……”);
(“我同意了”);
(“我不同意。”);
*提出約會
*女人提出約會,隻需要告訴媒人,由媒人負責跟其他人交互。
(女人提出約會請求,說:+says);
*《p》Title:女方家長類《/p》
(this);//把自己在媒人那裏注冊(聲明)
*考慮是否同意
(“女方父母考慮:我們做父母的該不該同意呢……”);
(“我們做父母的同意了”);
(“我們做父母的不同意。”);
*《p》Title:媒人類——中介者《/p》
*媒人處理男人提出的約會,
*男人提出約會,則隻需要把該問題告訴媒人,
*由媒人負責去跟其女方,女方父母,男方家長交互
(“媒人開始處理約會問題開始”);
(“媒人處理約會問題結束,根據同意的結果做其他處理”);
*媒人處理女人提出的約會,
*由媒人負責去跟男方,女方父母,男方家長交互
(“媒人開始處理約會問題開始”);
(“媒人處理約會問題結束,根據同意的結果做其他處理”);
*處理彩禮等其他問題……
(“處理其他問題”);
//以下四個注冊方法,可以理解為,男方和女方之間的通訊必須通過媒人
*注冊男人
*注冊女人
*注冊男方家長
*注冊女方家長
*《p》Title:測試類——可以運行該類《/p》
Manman=newMan(mat);//男人,以媒人為建立構造參數
(“我想和你約會,可以嗎?”);
(本章完)