屬性及產生內容

屬性是物件要封裝用以維護其狀態的變數。物件將屬性封裝作為一組資料項目。資料項目會指定變數的名稱和類型,其中類型是資料類型。物件的資料項目是對映至物件結構的成員。成員名稱及類型與物件資料的名稱及類型相同。

例如,Valve 物件類型的 isClosed 屬性會由值內嵌作為 Valve 結構內的資料成員:

struct Valve {
    /*** User explicit entries ***/
    RiCBoolean isClosed;   /*## attribute isClosed ##*/
};

RiCBoolean 類型是 OMBoolean 的 C 對等項目,而布林資料類型定義於 IBM® Rational® Rhapsody® Developer for C++ 架構中。

存取元作業讓您可以存取資料,而轉換元作業讓您可以修改資料。 當 C_CG::Attribute::AccessorGenerate 內容設定為 Checked 時會產生存取元。同樣地,當 C_CG::Attribute::MutatorGenerate 內容設定為 Always 時會產生轉換元。AccessorGenerate 預設值是 ClearedMutatorGenerate 預設值是 Never

在規格檔案的使用者隱含區域中,會針對物件類型產生存取元與轉換元作業。例如,在 Valve.h 檔案中,針對 isClosed 屬性產生 _getIsClosed() 存取元作業及 _setIsClosed() 轉換元作業的原型。

/*** User implicit entries ***/
RiCBoolean Valve _getIsClosed(const Valve* const me);
void Valve _setIsClosed(Valve* const me, RiCBoolean
    p_isClosed);

在實作檔案中,針對物件類型產生存取元及轉換元作業的主體。例如,在 Valve.c 檔案中,針對 _getIsClosed()_setIsClosed() 作業產生下列實作:

/*** Methods implementation ***/
RiCBoolean Valve_getIsClosed(const Valve* const me) {
   return me->isClosed;
}
void Valve _setIsClosed(Valve* const me, RiCBoolean
    p_isClosed) {
    me->isClosed = p_isClosed;
}

Rational Rhapsody 會以下列順序產生屬性:

  1. 屬性分組為使用者定義及隱含的屬性(例如關係儲存器)。
  2. 按字母順序來產生每一個子群組中的屬性。

回饋