由于我没有找到任何准确描述我问题的内容,我想我试一试:
在我的整个时间里,每当我需要区分类似模式的不同实现时,我就会使用抽象类,就像一个抽象标记器,用于从文本中解析和创建不同的对象。
但是最近我发现,在大型项目中,几乎每次都有一个名为AbstractBaseBBE
或AbstractBaseBean
的类几乎覆盖Object
类中的所有内容。从字面上看,这些项目中的所有类在遍历层次结构树时最终都会从此基类扩展。我开始研究java中bean的定义,并且声明bean基本上只是一个带有私有字段的getter和setter的类。 AbstractBaseBBE
和AbstractBaseBean
类也有处理Properties
的方法,但不是处理我从事件处理中知道的属性,例如PropertyChangeSupport
,它们只是String
对象。
我无法弄清楚他们这样做的原因或者那些抽象bean类的目的是什么。
除了在执行此操作时为所有子类提供其他方法之外,还有其他原因吗?
以下链接是这些的示例:
第一个PropertyDescriptor
是我对属性的意思。不幸的是,上面基类中使用的一些类和方法不在项目中,这意味着它们可能是从外部源或库导入的。
我希望你能帮助我理解这些课程的目的是什么,以及何时使用这样的课程。
答案 0 :(得分:3)
我认为你试图回答错误的问题。对于为什么总是应该使用“AbstractBaseBean”没有一般性的答案,但是你可以看到,在每种情况下,这给出了系统中每个对象的一般行为。这有用的东西是否真的取决于系统。
例如,您引用的JPA示例包含一组常规字段,包括带有getter和setter的id。另外两个都提供默认的hashcode和equals。
同样,没有一个正确的答案,但是如果你理解了它提供的功能,你可以自己决定它是否是你想要的。