我有很多种类的方法
doStuff(DataHolder in, DataHolder out)
类DataHolder是最终的。我想确保人们在使用这种方法时不会进出,这是确保这种方法最简单的方法吗?我宁愿不使用get getters和setter。
答案 0 :(得分:3)
您可以使用两个包装类:
class WrapperDataHolderIn{
public WrapperDataHolderIn(DataHolder data)
}
和
class WrapperDataHolderOut{
public WrapperDataHolderOut(DataHolder data)
}
注意:赞成合成而不是继承(复合重用原则)
答案 1 :(得分:0)
你有两个简单的选择:
DataHolder doStuff (DataHolder in);
或
class InDataHolder extends DataHolder {
// Empty!
}
class OutDataHolder extends DataHolder {
// Empty!
}
doStuff(InDataHolder in, OutDataHolder out);
答案 2 :(得分:0)
正如@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的典型实现。
答案 3 :(得分:0)
所以有一个与Pham Trung相似的想法是
像那样调用doStuff
in(in).out.(out).doStuff()
in()
和out()
返回this