シングルトン・オブジェクト

Singleton ステレオタイプのタグを付けられる多重度 1 のオブジェクトは、システム・ライフ全体を通して 1 回のみインスタンス化されます。 シングルトン・オブジェクトは、C においては struct および関数として実装されます。 しかし、singleton プロパティーはこのデータに対して強制されません。

シングルトン・オブジェクトは、宣言ファイル内で struct として宣言されます。 例:

struct object_0_t {
    /* attributes of object_0 */
};

シングルトン・オブジェクトは、実装ファイルでパッケージ・オブジェクトとして、次のようにインスタンス化されます。

struct object_0_t object_0;

シングルトンのインスタンスは 1 つしか存在できないため、その操作に、最初の引数としてのコンテキスト・ポインターは含まれません。 例えば、引数 a1 を伴う操作 op1() を持つシングルトン・オブジェクト A の場合、次の関数プロトタイプが生成されます。

/*## operation op1(int) */
void A_op1(int a1);

同じオブジェクトがもしシングルトンでないとすると、次の関数プロトタイプが生成されます。

/*## operation op1(int) */
void A_op1(struct A_t* const me, int a1);

フィードバック