我對適配器類毫無疑問。我知道適配器類的目標是什麼。何時應該使用。我的疑問是關於班級建設。我查了一些教程,他們都說我應該將「Adaptee」類作爲依賴項傳遞給我的「Adapter」。 例如適配器模式和依賴關係
Class SampleAdapter implements MyInterface
{
private AdapteeClass mInstance;
public SampleAdapter(AdapteeClass instance)
{
mInstance=instance;
}
}
這個例子複製自wikipedia。正如你所看到的,AdapteeClass作爲依賴被傳遞給我的對象。問題是爲什麼?如果我改變對象的界面很明顯,我將使用「新」界面,我不需要「老」界面。爲什麼我需要在適配器外部創建「舊」類的實例。有人可能會說我應該使用依賴注入,所以我可以通過我想要的任何東西,但這是適配器 - 我需要更改具體類的接口。就我個人而言,我認爲下面的代碼更好。
Class SampleAdapter implements MyInterface
{
private AdapteeClass mInstance;
public SampleAdapter()
{
mInstance= new AdapteeClass();
}
}
您的意見是?
我認爲你正在尋找裝飾器... – dotnetstep 2012-01-12 16:17:51
@dotnetstep不,他所指的適配器模式與裝飾器不同。裝飾者將保持界面相同,但會延長行爲。適配器重新編譯現有類的接口以匹配預期的接口請參閱http://stackoverflow.com/questions/350404/how-do-the-proxy-decorator-adaptor-and-bridge-patterns-differ以獲取更多信息 – 2012-01-12 16:22:42