我有那種如何區分同一類的兩個方法參數?
doStuff(DataHolder in, DataHolder out)
類DataHolder是最後的方法很多。我想確保人們在使用該方法時不會換入和換出,這是確保最簡單的方法嗎?我寧願不使用使用getter和setters。
我有那種如何區分同一類的兩個方法參數?
doStuff(DataHolder in, DataHolder out)
類DataHolder是最後的方法很多。我想確保人們在使用該方法時不會換入和換出,這是確保最簡單的方法嗎?我寧願不使用使用getter和setters。
您可以使用兩種包裝類:
class WrapperDataHolderIn{
public WrapperDataHolderIn(DataHolder data)
}
而且
class WrapperDataHolderOut{
public WrapperDataHolderOut(DataHolder data)
}
注意:在繼承青睞組成(綜合複用原則)
你有兩個簡單的選擇:
DataHolder doStuff (DataHolder in);
或
class InDataHolder extends DataHolder {
// Empty!
}
class OutDataHolder extends DataHolder {
// Empty!
}
doStuff(InDataHolder in, OutDataHolder out);
DataHolder是最後的 – farmer1992 2014-09-25 09:35:17
至於建議的@Pham的Trung,
您可以使用兩種包裝類:
class WrapperDataHolderIn{ public WrapperDataHolderIn(DataHolder data) } And class WrapperDataHolderOunt{ public WrapperDataHolderOut(DataHolder data) }
,但我還會加上:
public doStuff(WrapperDataHolderIn in, WrapperDataHolderOut out) {
doStuff(in.getDataHolder(), out.getDataHolder());
}
private doStuff(DataHolder in, DataHolder out) {
// do stuff
}
這樣,一切對於doStuff方法都是透明的。
這是Adapter pattern的典型實現。
如此的相似,範忠的一個一個想法是
調用doStuff像
in(in).out.(out).doStuff()
與in()
和out()
返回this
這是個好主意嗎? – Paolo 2014-09-25 09:57:47
做更具體的類?也許'DataHolderIn'和'DataHolderOut'? – 2014-09-25 09:05:37
@EvanKnowles:「類DataHolder是最終的」,大概是從圖書館收到的,不在OP的控制之下。 – Amadan 2014-09-25 09:06:01
閱讀該方法的文檔。所以包含文檔:) – 2014-09-25 09:06:08