我想创建示例程序。 它将有部门类,职位类,员工类。
每个部门都有任何职位。我不知道应该如何指定。
我不使用DataBase。它只是在Console中学习OOP。
答案 0 :(得分:1)
是否使用Enum
或Collection
主要取决于以下条件:
如果你的答案是
然后使用FlagsAttribute Enum
是个不错的选择。但是,如果对此有任何疑问,为Position创建一个类并添加一个集合是一种更好的方法,因为它更灵活。如果需要,它还允许您多次向部门添加相同类型的职位。
虽然到目前为止您还没有使用数据库,但请注意,与具有应该进入单独结构的相关位置相比,向部门添加Enum
属性更容易保存。
根据您的评论,我建议在创建时添加一个构造函数来设置部门中的相关数据(您可能还会考虑数据是否应该是私有字段,因为您无法从外部访问它们):
class Department
{
public Department(Dep departmentType, IEnumerable<Position> positions, int employeeCount)
{
this.departmentType = departmentType;
this.positions = new List<Position>(positions);
this.employeeCount = employeeCount;
}
Dep departmentType;
List<Position> positions;
int employeecount;
}
然后您可以像这样创建一个新的部门:
var dep = new Department(Dep.Electric,
new Position() [] { new Position(), new Position() },
5);
请注意,您可能还需要向Position类添加构造函数。在上面的示例中,我创建了两个Position对象,这些对象被添加到Department中的Positions列表中。
答案 1 :(得分:0)
如果position只是字符串值,那么最好将它们作为枚举并在其周围编写逻辑。
如果将新位置添加到枚举中,逻辑将会中断,这将有助于您为每个位置编写特定功能。
您可以围绕此位置枚举编写一个类,以根据枚举更改其功能。