我在这里描述了我之前的问题:Java - how can I loop methods with same name but different parameters
我有一个相关的问题。
这里给出了一个例子--使用包装器类的一个好例子?
class Wrapper{
Part param1;
File param2;
File param3;
}
class Validator{
void validate (Wrapper wrapper);
}
class ValidatorA extends Validate{
void validate (Wrapper wrapper){
//use wrapper.part...
}
}
class ValidatorC extends Validate{
void validate (Wrapper wrapper){
//use wrapper.file...
}
}
但这让我想知道。wrapper的名称正确吗?是有效的包装类吗?据我所知,包装器类用于原语,以将它们用作对象,那么它不应该被命名为不同的吗?还是我错了?
我需要以同样的方式调用它,这样我就可以循环它,这样重载就不是答案了。给定的类运行良好-我只是在想,使用包装器名称的方式是否正确?
发布于 2015-06-16 00:37:36
在这种情况下,包装器不是一个好的选择。通常,wrapper用于包装一些不同的东西,使它们看起来很相似,即使它们是完全不同的。例如,你可能有一些来自不同来源的数据流--文件,http连接,资源。您所关心的就是从这个源中读取数据。因此,您编写了一个包装器,它可以从任何来源读取数据,并只传递数据。
包装器不应该与通用功能混合在一起。在上面的示例中,所有3个源都可以被视为流,因此自然的解决方案是将它们都用作流。但是,即使最终在包装器中,它们也被用作流,它们仍然需要不同的处理和操作来处理它们。而wrapper会处理它。您并不关心什么是封装的--您只需以包装器提供的通用方式使用封装的东西即可。
在您的示例中,我们有常规对象,它封装了一些数据和功能。这是常规的OOP方法。称其为包装器只会误导以后可能使用此代码的用户。
https://stackoverflow.com/questions/30848820
复制相似问题