UMLクラス図で、クラスに5つのプライベート属性があり、変更可能で読み取り可能である必要がある場合、UMLは、クラスの興味深い機能がなくても、10のget/setメソッドでかなり醜くなります。
醜さはさておき、UMLはクラスのより興味深い機能に焦点を当てるべきだと思います。私は正しいですか?
プライベート属性のゲッターとセッターを表示または暗示するための標準的なショートカットはありますか?
正解です。クラスモデルに標準のセッターおよびゲッターの「ボイラープレート」シグネチャを含める必要はありません。残念ながら、UMLはプライベート属性のゲッターとセッターを意味する標準表記を定義していません。したがって、独自の規則を使用する必要があります。たとえば、UMLとして一般的な説明(すべてのプライベートプロパティにはゲッターとセッターがあるのに対し、プライベートな読み取り専用プロパティにはゲッターしかありません)をUMLとして含めることができます、ダイアグラムに添付された右上隅が曲がった長方形(「ノート記号」とも呼ばれます)として表示されます。
関係するプロパティに対してgetter/setter規約をより明示的にしたい場合は、次の図に示すように、これらのプライベートプロパティの分類に使用する独自のステレオタイプ(たとえば、"get/set"および"get")を作成します。 :
ECMAScript 6クラスの暗黙的なゲッターとセッターを記述/文書化するためにもこれを使用しています。
UMLはゲッターセッター操作を定義しません。 GetおよびSetメソッドは、属性定義を実現するためにプログラミング言語で使用されます。たとえば、readonly属性は、実装コードでのみgetterメソッドを持ちます。属性が計算済みとして定義されている場合、通常、コード内でgetterメソッドを使用して計算を実装します。計算された属性は通常読み取り専用であるため、setterは省略できます。通常、属性の可視性は、コード内のゲッターメソッドとセッターメソッドの可視性にも移動します。読み取りと書き込みで定義され、計算されない属性のコードでgeterメソッドとsetterメソッドを定義しても意味がありません。