تعریف:
یک استاندارد برای نوشتن کلاس است که باید قواعد زیر را رعایت کند:
-
همه فیلدهایش بصورت private تعریف شوند.(دسترسی read و write با کمک متدهای setter و getter).
-
اینترفیس serializble را implement کند.
-
یک constructor بدون هیچ پارامتر ورودی و public داشته باشد.
از اونها به عنوان کامپوننت های نرم افزاری با قابلیت استفاده مجدد نیز نام برده میشود(reusable software component)
مزایا:
وقتی یک کلاسی seializable رو پیاده سازی کرد میتواند بصورت stream of bytes در شبکه منتقل شود (deserialize/serialize).
کاربرد:
این نوع کلاس ها میتوانند به عنوان objectهای متناظر با جداول پایگاه داده در فریمورک های آن استفاده شوند(DAO).در JSP و دیگر فریمورک های web به عنوان کلاس های کنترل کننده صفحات به کار میروند.
بصورت کلی فریمورک های MVC و ORM از java bean به عنوان یک کلاس استاندارد برای مدل کردن اشیا واقعی استفاده میکنند.مانند : Spring , Hibernate , JSF , JPA و ...
ابزارهای مفیدی وجود دارند که داده های از نوع java bean را بصورت اتوماتیک به نوع هایی محبوبی مانند XML , JSON , CSV و .. تبدیل میکنند(و بلعکس)
مثال
public class PersonBean implements java.io.Serializable {
/**
* Property <code>name</code> (note capitalization) readable/writable.
*/
private String name = null;
private boolean deceased = false;
/** No-arg constructor (takes no arguments). */
public PersonBean() {
}
/**
* Getter for property <code>name</code>
*/
public String getName() {
return name;
}
/**
* Setter for property <code>name</code>.
* @param value
*/
public void setName(final String value) {
name = value;
}
/**
* Getter for property "deceased"
* Different syntax for a boolean field (is vs. get)
*/
public boolean isDeceased() {
return deceased;
}
/**
* Setter for property <code>deceased</code>.
* @param value
*/
public void setDeceased(final boolean value) {
deceased = value;
}
}