淺析設計模式之策略模式—:為什么總是繼承[3]軟件測試
關鍵字:uml 二、 Strategy 策略接口,給算法族定義一個通用的接口,讓客戶以一種一致的方法去訪問。(I教務處報到,I繳費)
三、 ConcreteStrategy 這就是具體的策略實現了,實現策略接口(各報到步驟的實現)。
在我們的例子中報到的步驟就是算法族 比如“繳費”這個步驟,有多種繳費方式,我們將其封裝起來,客戶調用的時候并不需要了解你是怎么實現這個“繳費”的,這個過程對于客戶來說是透明的。這些不同的“繳費”步驟之間是可以無縫的替換,而客戶對此一點都不知覺。
好了,既然解決方案提出來了,我們就來實現它吧 。
首先我們定義所有的報到步驟的接口:
public interface I教務處報到
{
void 教務處報到();
}
public interface I繳費
{
void 繳費();
}
public interface I本院系報到
{
void 本院系報到();
}
public interface I教材科發教材
{
void 教材科發教材();
}
下面我實現兩個教務處報到的步驟,其他的就當作課后作業了,呵呵。
public class 教務處報到A : I教務處報到
{
public void 教務處報到()
{
Console.Write("教務處報到,A類實現");
}
}
public class 教務處報到B : I教務處報到
{
public void 教務處報到()
{
MessageBox.Show("教務處報到,B類實現");
}
}
再看看我們的高校類的實現吧:
public class 高校
{
public 高校(I教務處報到 p教務處報到,I繳費 p繳費,I本院系報到 p本院系報到,I教材科發教材 p教材科發教材)
{
this._教務處報到 = p教務處報到;
this._繳費 = p繳費;
文章來源于領測軟件測試網 http://www.kjueaiud.com/