分類子

用語

分類子

用語(英)

Classifier

別名

-

識別情報

  • Term ID: src/main/doxsite/glossary/object-foundation/classifier.dox

  • English label: Classifier

  • Japanese label: 分類子

  • Category: Object Foundation

  • Status: normative

  • Definition authority: SimpleModeling BoK, aligned with UML 2.5.1

定義

分類子(Classifier)とは、共通するFeatureに基づいてInstanceを分類し、それらのInstanceが持ち得る構造または振る舞い上の特徴を定めるTypeです。SimpleModelingではClass、Interface、Trait、Data Typeなどの共通する上位概念として使用します。

UML

UML 2.5.1では、ClassifierはTypeの特殊化であり、Class、Interface、DataTypeなどの上位概念です。SimpleModelingのTraitはUML標準のClassifier種別ではなく、Classifierの意味を拡張するSimpleModeling固有のModel Elementです。UML Profileへ写像する場合は、原則としてabstract Classへ «trait» stereotypeを適用します。

オブジェクト関数パラダイム

ClassifierはObject側の分類構造を厳密に説明するための概念です。関数型、union type、intersection type、type lambdaなど、すべてのObject-Functional TypeをClassifierとして扱うわけではありません。

CML

CMLではEntity、Value、Trait、Powertype、StateMachineなどの具体的なObject種別を使用します。Classifierはそれらの分類上の共通性を説明するメタモデル上の補助語であり、通常のDomain Model記述で常に明示する語ではありません。

Scala

ScalaにUML Classifierと一対一に対応する単一の言語要素はありません。class、trait、enumなどはInstanceや値を分類するTypeを導入しますが、Scala Type全体がUML Classifierであるわけではありません。

公開成果物での用法

日本語では「分類子(Classifier)」を正規表記とします。ただしObject Modeling入門ではClass、Interface、Trait、Data Typeを直接説明し、ClassifierはUML上のTypeとの関係を厳密に示す場合だけ導入します。「ClassifierはInstanceを分類し、ClassはObjectを分類する」という階層説明を、ClassとTypeの主説明の代わりにはしません。

境界

  • ClassifierはClassと同義ではありません。ClassはClassifierの一種です。

  • ClassifierはType全体と同義ではありません。

  • SimpleModeling TraitをUML標準のClassifier種別として扱いません。

  • Classifierは実行時のObject Instanceではありません。

関連語

  • クラス

  • インターフェース

  • トレイト

  • データ型

  • インスタンス

  • フィーチャー

参照