只是一个可以在设计方面引起一些考虑的理论问题。如果你用这个可重用的类替换POJO怎么办?它可能会避免一些样板代码,但它会带来什么问题呢?
// Does not include failsafes, guards, defensive copying, whatever...
class MySingleGetterAndSetterClass{
private HashMap<String,Object> myProperties;
public SingleGetterAndSetter( String name ){
myProperties = new HashMap<String,Object>();
myProperties.put( "name", name );
}
public Object get( string propertyName ){
return myProperties.get( propertyName );
}
public Object set( string propertyName, Object value ){
myProperties.put( propertyName, value );
}
}
答案 0 :(得分:3)
这会导致代码非常不稳定。您的获取/设置都不会被编译时检查。通常,您希望代码快速失败,编译时间是绝对最快的。
为了使它甚至相对安全,你必须在整个地方进行空检查/异常处理,然后如何在代码中始终如一地处理未找到值的情况?它会变得非常臃肿。
答案 1 :(得分:3)
主要缺点
答案 2 :(得分:1)
你的pojos是一个代表现实世界中某事物的抽象。 如果我理解你想把它们的属性放在地图中,这不是一个好的设计。你反对使用OOP。如果您以这种方式思考,您可以将所有类放在一个大字符串中并按位置搜索它们,这比仅使用属性作为键的字典更好。