Dies ist für ein Mitarbeiteranrufsystem.Wie kann ich die Logik der Klassen- und Namenstechniken trennen?
Ich habe 3 Klassen bisher: Person Manager und Manager-Team.
Die Person, die die Basisklasse ist, wobei Manager die Klasse ist, die mit der Klasse ManagerTeam auf Berechtigungen zum Erstellen neuer Mitarbeiter zugreifen kann.
Der Einfachheit halber werde ich einige der Personenklasse überspringen.
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
*/
}
}
Ich bin verwirrt, weil ich davon denken sollte der Konstruktor sein sollten und welche die Funktion nur die Objekte der neuen Mitarbeiter in die Anordnung einer Liste der Mitarbeiter laden, die aus mehreren Gründen von Manager zugegriffen werden soll später implementiert. Später ist es das Ziel, eine Mitarbeiterklasse hinzuzufügen, und diese Mitarbeiterklasse kann Anforderungen akzeptieren und ablehnen. Diese Informationen werden auch bei der Entwicklung in das Managerteam einfließen.
Denk darüber abstrakt: In Ihrem Code Manager iherited von Person und es macht Sinn als Manager * eine Person * am wahrscheinlichsten ist. ManagerTeam ist jedoch keine Person und ist * kein * Manager. Es deutet darauf hin, dass hier etwas mit der Architektur nicht stimmt. Wenn ich es richtig verstanden habe, ist das Manager-Team ein Team von Managern und sollte daher nicht von der Manager-Klasse geerbt werden. Möglicherweise benötigen Sie hier eine Auflistung, zum Beispiel "Liste". –
Fabjan
1) Ist 'ManagerTeam' der' Manager' * eines * Teams? 2) 'EmployeeList' sollte' List 'oder so etwas sein, kein Array. Arrays haben eine feste Größe, es ist extrem selten, dass sie immer das Richtige sind. –
'Manager' hat-ein' Team'. – crashmstr