2010-09-11 46 views
0

我已閱讀了一些教程,文檔,但我不知道如何定義從BaseModel或ModelData擴展的類?具體來說,我不知道如何命名getter和setter方法以及方法中的值。是否有任何代碼約定?例如:ExtGWT-GXT,我如何定義一個從BaseModel擴展的類?

public void setName(String value) { 
    set("name", value); //why is it "name"? does it relate to a attribute of Data Object? 
} 

public String getName() { 
    return get("name"); 
} 

在他們說「Appress與ExtGWT發展」:「ModelData允許插件來詢問數據對象,而無需具有任何特定的數據類型的具體支持,提供從所述模型的分離和視圖」。

我能推斷出的,而不是像創建一個實例:

美孚富=新的Foo(); foo.getName();

我可以調用「getName()」?

回答

1

繼承人我通常在編寫擴展ModelData的pojo時做的事情。 本質上調用set()或get()只是訪問一個hashmap。這允許您的數據對象具有鬆散的「反射類型」運行時訪問類型的屬性。因此,您可以傳遞任何字符串作爲第一個參數,並且將定義屬性名稱。

我使用靜態最終字符串,以便更容易維護對象。

如果你想分離圖層WRT你的數據對象,也可以使GXT類型綁定更困難,你也可以連接getter和setter。

public class MockModel extends BeanModel implements ModelData { 
private static final long serialVersionUID = -5276682038816452567L; 

public static final String ID = "ID"; 
public static final String NAME = "NAME"; 
public static final String DESCRIPTION = "DESCRIPTION"; 
public static final String FIELD1 = "FIELD1"; 
public static final String FIELD2 = "FIELD2"; 
public static final String FUNCTION1 = "FUNCTION1"; 
public static final String FUNCTION2 = "FUNCTION2"; 

public MockModel(int id, String name, String desc, int f1, int f2) { 
    set(ID,id); 
    set(NAME,name); 
    set(DESCRIPTION,desc); 
    set(FIELD1,f1); 
    set(FIELD2,f2); 
    set(FUNCTION1, 0); 
    set(FUNCTION2, 0); 
} 

}

0

這裏,我們的類,它擴展了BaseModel

import com.extjs.gxt.ui.client.data.BaseModel; 

public class Order extends BaseModel { 

private static final long serialVersionUID = 1L; 

/** 
    * Default constructor 
    */ 
public Order() { 
    super(); 
} 

public Order(Integer lieferungID) { 
    this(); 

    setLieferungID(lieferungID); 
} 

public void setLieferungID(int lieferungID) { 
    set("lieferungID", lieferungID); 
} 

public Integer getLieferungID() { 
    return get("lieferungID"); 
} 
} 

我使用這個類來填補尋呼和簡單的網格數據和它的作品完美。你的getter和setter看起來不錯...