Classという名前のクラス?


18

これはもっとスタイルの質問ですが、私は現在私のプロジェクトについて考えています。

学校をモデル化しているアプリケーションを作成していると仮定します。したがって、Student、Schoolなどのエンティティがあります。これは(ほとんどの言語で)Class予約語であるため、Classに到達するまで、これはすべて正常で直感的です。それClassが予約されたキーワードであることを考えると、学校のクラスをモデル化するそのようなエンティティを何と呼びますか?


19
SchoolClass ????
マシューフリン

5
あなたはシノニム試みることができるthesaurus.com/browse/classを
ゲイリーBuyn別名ギャン

@MatthewFlynn、それは確かに私の心を横切った。実際には、それは私の最初けれども...だった
ジェイソン・ホワイトホーン

1
質問を再開しました。トピック外のコメントと同じように、他の回答を繰り返した回答や、気味の悪いワンライナーの回答は削除されます。
ヤニス

1
これは完全に正当な質問です。「ドメイン固有の用語が、選択したプログラミング言語の用語と競合する場合はどうしますか」。それは特定の例の観点から見ただけで、それは問題ありません。
スティーブベネット

回答:


37

クラスという言葉は曖昧になる可能性があるため、別の用語を選択します。

クラスは以下を参照しますか:

  1. コースを受講している学生のグループ?
  2. 今学期のコース全体は?
  3. 複数の学期で教えられた抽象的なコース?
  4. 学生のグループは特定の時間に卒業する予定ですか?
  5. 学生の他の分類、つまり上級クラス、特別支援クラス。
  6. 特定の講義

そして、それは学術の領域を離れることさえありません。モデリングしようとしているものに合った、より良い単語を見つけることができる可能性があります。クラスは混乱を招くだけです。


ああ、はい...非常に良い点。これは私が探していたタイプの議論です。実際、私は「特定の時間に特定の教師が教える特定のコースを単一の学期(年、学期など)で受講する学生のグループ」を意味していました...それが理にかなっている場合。または、言い換えれば、「私は月曜日、水曜日、金曜日の午後2時からスミス氏と生物学IIを受講しています。」
ジェイソンホワイトホーン

しかし、確立されたドメイン用語が言語キーワードと衝突するという一般的な問題は残っています
...-tdammers

一部の機関では、ストリームと呼ばれます。(独自の名前の衝突の問題があります:))
スティーブベネット

21

特定のクラスの場合は、「コース」、「主題」、または「講義」と名付けることができます。「セクション」なども使用できます。

Winston Ewertは、あなたが自問しなければならない質問を本当に強調しました。


セクションの+1。これは、@ JasonWhitehornが念頭に置いていたもののようです。WinstonEwertの回答
-sq33G

2

シノニムを見つけるのは良いアイデアです。たとえば、「コース」です。

ただし、単語classを再利用する必要は一般的であり(Class型のローカル変数の場合が多い)、従来のclassの置換にはklassclazz、およびclsが含まれます。


「klass」はあなたがドイツ語(またはオランダ語)であることを意味し、「clazz」は「jazz」と「cls」に似ています。これは「CLearScreen」に使用されていませんか?
ypercubeᵀᴹ

1

一部の言語classでは予約語であり、ではありませんClass


4
ただし、「...クラスが予約済みのキーワードである...」と言いました。さらに、大文字と小文字だけが異なる2つのアイテムは恐ろしいアイデアだとは思いませんか。
ジェイソンホワイトホーン

使うべきという意味ではありません。必要以上にIfElseまたはGotoこれらの小文字バージョンが予約されている言語で。
ダウッドはモニカを復活させると

5
これは答えではありません。
ヨルダン

1
Javaにはすでにclass Class
dan04

3
@JasonWhitehorn:大文字と小文字のみが異なる2つの項目は必ずしも悪い考えではありません。言語のすべてのキーワードが小文字で、すべてのクラスが大文字である場合Class、カスタム定義の完全に明確なものですclass
leftaroundabout

1

@Winston Ewertは、Classという言葉があいまいになる可能性があるため、別の用語を選択することに同意します。

この場合、実装に適したより良い同義語を使用する必要があります。そのようなタイプのアーキテクチャをモデル化する場合は、Courseに進みますが、他の同義語も使用できます。

システムに多少一致するクラスアーキテクチャの例を確認してください。参照: 学生クラスとコースクラス

質問にnamingというタグが付いているので、名詞または名詞句を使用して、使用する同義語からクラスに名前を付けます。


0

一部のプログラミング言語では、変数名に予約語を使用できます(クラス名もありますか?)。たとえば、C#classでは予約語ですが、次のようにできます。

string @class = "Super class";

プログラミング言語の仕様を確認して、これを行うことができます。

そうでない場合は、Winston Ewerthの答えをそのまま使用してください。


0

プログラミング言語の構文は別として、単語クラスは、学校情報システムの場合のデータモデリングの観点からは良い名前ではありません。クラスが何を意味するのかを考えると、(特に)次のことがわかります。

クラスは、開始と終了を持っており、学校教育によって(教え)監修され、定期的な活動です。このアクティビティ内では、科目が教えられたり、アクティビティ(スポーツなど)が実行されたりするため、科目はゼロ、1つまたは複数のクラスとして提供されます。

したがって、単語クラスは実際には「スケジュールされた教育活動」です。したがって、次の選択肢があります。

  • ScheduledEducationalActivity

  • ScheduledActivity(この場合、より一般的で、アクティビティを教育的なものにしたり、講義やセミナー、トーナメントなどのイベントにしたりすることができます)

  • 件名

したがって、名前クラスは実際には慣習または(ビジネス名)ですが、エンティティを説明する最適な名前ではありません。


-2

エンティティをClassRoomとして宣言できます!


2
エンティティがクラスが開催される物理的な部屋を表さない限り、それは悪い名前です。
ジェスパー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.