一个名为Class的Class?


18

这更多是一个风格问题,但这是我目前正在考虑的我的一个项目。

假设您正在创建对学校进行建模的应用程序。因此存在诸如学生,学校等实体。现在,一切都很好而且很直观,直到您上课为止,因为(在大多数语言中)Class是保留字。那么,如果这Class是一个保留关键字,那么您将如何称呼这种模拟学校课程的实体?


19
SchoolClass ????
马修·弗林


@MatthewFlynn,这的确让我大吃一惊。实际上,虽然这是我的第一次…
杰森·怀特霍恩

1
我重新提出了问题。重复其他答案或过于时髦的答案将被删除,对于脱机主题评论也是如此。
扬尼斯2012年

1
这是一个完全合法的问题:“当您的特定领域的术语与您选择的编程语言中的术语冲突时,您会怎么做”。它只是按照一个特定示例的方式介绍的,很好。
史蒂夫·贝内特

Answers:


37

我会选择另一个术语,因为“类”一词可能含糊不清。

类是否指的是:

  1. 一群学生正在学习课程?
  2. 这个学期的整个课程?
  3. 在多个学期中教授的抽象课程?
  4. 预计在特定时间毕业的那一组学生?
  5. 其他一些学生分类,即高级班,特殊需要班。
  6. 具体讲座

而且这甚至没有离开学术领域。您可能会找到一个更好的词来适合您要建模的任何东西。上课只会引起一些混乱。


嗯,是的。这是我一直在寻找的讨论类型。实际上,我的意思是“一群学生在一个学校学期(年,学期等)在特定时间参加由特定老师教的特定课程”……如果有任何意义的话。换句话说,“我将在周一,周三,周五的下午2点与史密斯先生一起参加《生物学II》。”
杰森·怀特霍恩

虽然与语言关键字冲突的已建立领域术语的一般问题仍然存在……
tdammers 2012年

在某些机构中,这称为流。(这有其自己的名称冲突问题:))
史蒂夫·贝内特

21

如果是特定课程,则可以将其命名为“课程”,“主题”或“讲座”。您还可以使用“部分”等。

温斯顿·埃韦特(Winston Ewert)确实强调了您必须问自己的问题。


+1部分。这似乎是什么@JasonWhitehorn脑子里想的,根据他的温斯顿·尤尔特的答案回应
sq33G

2

找到一个同义词是一个好主意,例如“课程”。

但是,重用单词class的需求很常见(通常是Class类型的局部变量),而class的常规替代品包括klassclazzcls


“ klass”表示您是德语(或荷兰语),“ clazz”更像是“ jazz”和“ cls”,哦,这不是用于“ CLearScreen”吗?
ypercubeᵀᴹ

1

它取决于某些语言class中的保留字,而不是Class


4
但是,我确实说过“ ...鉴于Class是保留的关键字...”,再加上,您难道不说两个仅视情况而异的项目是一个可怕的主意吗?
杰森·怀特霍恩

并不意味着您应该使用它。超出您应使用的范围IfElse或者使用Goto保留小写版本的语言。
达伍德说,请

5
这不是答案。
约旦

1
Java已经有一个class Class
dan04 2012年

3
@JasonWhitehorn:两个仅因大小写而不同的项目根本不是一个坏主意–如果您的所有类名都使用大写字母,而您的语言中的所有关键字都使用小写字母,则这是完全Class自定义的,是自定义的class
左右左转

1

我同意@Winston Ewert的观点,我会选择另一个术语,因为Class一词可能是模棱两可的。

在这种情况下,您必须使用适合您的实现的更好的同义词。如果我对这种类型的体系结构进行建模,那么我将参加Course,但也可以使用其他同义词。

检查与您的系统有些匹配的示例类体系结构。参考: 学生班和课程班

当您的问题用命名标记时,请使用名词或名词短语从您使用的同义词中命名一个类。


0

在某些编程语言中,可以在变量名中使用保留字(甚至可能是类名?)。例如,在C#中,即使class是保留字,您也可以这样做:

string @class = "Super class";

您可以检查您的编程语言规范是否允许您执行此操作。

如果没有,那就去温斯顿·埃沃斯(Winston Ewerth)的答案。


0

除了编程语言语法外,对于学校信息系统而言,从数据建模的角度来看,单词class并不是一个好名字。当您考虑一个类的含义时,您会发现(其中包括):

是定期的活动,有开始和结束,并监督(教)由学校教育。在此活动中,将对某个科目进行授课或进行一项活动(如运动),因此,该科目将以零班,一班或多班的形式提供

因此,“ class ” 一词确实是“预定的教育活动”,因此您会选择:

  • 预定的教育活动

  • ScheduledActivity(在这种情况下,您可以更通用一些,并允许该活动具有教育意义或诸如演讲,研讨会或锦标赛之类的事件等)。

  • 主题提供

因此,名称实际上是约定俗成的(商户名称),但不是描述实体的最佳名称。


-2

您可以将实体声明为ClassRoom!


2
除非实体代表要举行课程的物理房间,否则这将是一个不好的名字。
Jesper 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.