abstract class
Do:
- 使用private修饰attributes,avoid direct external access
- 提供getter方法,让子类和外部可以安全访问attr
- setter方法是否提供取决于需求(只读--不提供,需要子类修改--setter设为protected)
- 提供有参constructor(无参是否提供视情况而定)
- 可以定义abstract methods和regular methods
Do not:
- 不要把所有的方法都定义为abstract,这样就失去了抽象类的意义,不如直接用接口
- 不要提供无意义的setter方法
- 不要直接操作attr而是使用getter方法
JavaBean
使用场景:JavaBean常见于Java EE开发、ORM框架、Web开发(在web开发中常需要在前端和后端之间传输数据,此时往往用到JavaBean作为Data Transfer Object,用于封装数据)。
Do:
- 必须使用public class定义类
- 必须使用private修饰attr
- 必须提供无参constructor
- 必须提供getter和setter