Analytics

2013年4月1日 星期一

[Design Pattern]Structural Pattern-Adapter Design Pattern(配適模式)

使用時機:
舊有程式需增加功能或行為,而不需重寫或變動舊有程式,使用者統一透過interface存取新程式.
例如:Mac OS可執行本身PowerPC Process指令集也可執行不同指令集的windows(intel sse),也就是在Mac OS底下可以執行Windows,讓新舊程式可共存.
使用方式:
class Adaptee
{
// Provide full precision
public double SpecificRequest (double a, double b)
{
return a/b;
}
}
// Required standard for requests
interface ITarget
{
// Rough estimate required
string Request (int i);
}
// Implementing the required standard via Adaptee
class Adapter : Adaptee, ITarget
{
public string Request (int i)
{
return "Rough estimate is " + (int) Math.Round(SpecificRequest (i,3));
}
}

以上面的例子來說:
舊有的程式使用如下方式叫用,結果如下:

Adaptee  first =  new  Adaptee( );
first.SpecificRequest(5,3);

結果:1.66666666666667
新的程式使用如下方式叫用,結果如下:

ITarget second = new Adapter( );
second.Request(5);
結果:2

參考書籍c#3.0 design pattern

沒有留言:

熱門文章