这是一个员工调用系统。
到目前为止,我有 3 个类(class):Person Manager 和 Manager team。
Person 是基类,Manager 是能够访问权限以使用 ManagerTeam 类创建新员工的类。
为了简单起见,我将跳过一些 person 类。
class Person
{
private string firstName;
private string lastName;
private string phone;
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
}
class Manager : Person
{
private string Position;
public Manager() : base()
{
Position = "Manager";
}
/*
* later on maybe some sort of regulation for creating new manager
* or new person with acabailities here
*/
}
class ManagerTeam : Manager
{
private string Shifts;
private string On_Call;
string[] Employee_list = new string[5];
/*
* maybe this should be turned into a funciton to insert all employees from
* "CreateNewEmployees" into the array.
*/
public ManagerTeam() : base()
{
/*
* this calls for another object being person to be assigned into
* an array for person.
*/
}
static MangerTeam CreateNewEmployee() /* change this is constructor */
{
/*
* this assigns shift times and checks if on call and any data
* to an employee
*/
}
}
我很困惑,因为我认为哪个应该是构造函数,哪个应该只是将新员工的对象加载到员工列表的数组中的功能,经理出于多种原因应该访问这些对象以便稍后实现。稍后的目标是添加员工类,该员工类将能够接受和拒绝请求,该信息在开发时也将进入经理团队。
最佳答案
OOP 中的继承通常意味着“is-a”关系。在您的例子中,"is"ManagerTeam
是 Manager
吗?在不知道 ManagerTeam
的目的的情况下很难说,但仅凭名称我猜不是。所以继承在您的设计中可能不是正确的选择。
在构造函数与方法方面,考虑有效对象的要求。如果经理需要让员工正常工作,那么它应该在构造函数中,否则一个单独的方法是合适的。
关于c# - 如何分离类和命名技术逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46917158/