程序員:EJB設(shè)計模式1

字號:

第一個設(shè)計模式非常簡單。一個公司和雇員的Entity Bean和下面給出的Entity Bean的代碼片斷是類似的。它們是由jbuilder4的EntityBean模版生成的。所有的字段都聲明為public的cmp字段。
    Code snippet for Company Entity Bean
    public class CompanyBean implements EntityBean {
    EntityContext entityContext;
    public Integer comId; //the primary key
    public String comName; //the company name
    public String comDescription //basic description
    public Timestamp mutationDate //explained later
    public Integer ejbCreate() throws
    CreateException {
     return null;
    }
    //various get() and set() for every column/field
    // which are exposed in the Remote Interface as well Code snippet for Employee Entity Bean
    public class EmployeeBean implements EntityBean {
    EntityContext entityContext;
    public Integer empId;        //the primary key
    public Integer comId;        //the company foreign key
    public String empFirstName;     //the employee firstname
    public String empLastName;    // the employee lastname
    public Timestamp mutationDate;  //explained later
    public Integer ejbCreate() throws
    CreateException {
     return null;
    }
    //various get() and set() for every column/field
    // which are exposed in the Remote Interface as well
    這個設(shè)計模式雖然很簡單,但是卻有很多缺點,比如,對每一個字段的訪問都會導(dǎo)致對get()和set()方法的一次遠程調(diào)用。而遠程過程調(diào)用(RPCs)是非常耗費資源的,并且,對于在實際中通常要求的組合的訪問會導(dǎo)致一系列的遠程調(diào)用??梢哉f,這個模式在實際中可用性很差。上面展示的設(shè)計模式可以作為其他設(shè)計模式的基礎(chǔ),比如RAD,原型設(shè)計,測試等。這時,那個代表雇員的Employee Entity Bean并沒有展示出在雇員和公司之間有何關(guān)系。