Onkel Bob in seinem Clean Code legen nahe, dass nicht mehr als 3 Argumente sollen eine Funktion erhalten:Vererbung und kleine Anzahl von Parametern
Funktionen, die drei Argumente sind wesentlich schwerer verstehen als Dyaden. Die Probleme beim Bestellen, Pausieren und Ignorieren von werden mehr als verdoppelt. Ich schlage vor, Sie denken sehr sorgfältig vor Erstellen einer Triade.
Aber was ist mit CTOR-Argumenten in Klassenvererbungshierarchie? Was, wenn jede Klasse in der Hierarchie ein neues Feld hinzufügt und Sie diese in CTOR initialisieren sollten. Sehen Sie ein Beispiel unter:
class Person
{
private:
std::string m_name;
int m_age;
public:
Person(const std::string& name, const int age);
std::string getName() const { return m_name; }
int getAge() const { return m_age; }
~Person();
};
class Student : public Person
{
private:
std::string m_university;
int m_grade;
public:
Student(const std::string& name, const int age, const std::string& university, const int grade);
std::string getUniversity() const { return m_university; }
int getGrade() const { return m_grade; }
~Student();
};
Sehen Sie, wie Student
4 Argumente bekommt, während Person
bekommt nur 2 und Student
fügt zwei weitere. Wie sollen wir damit umgehen?
Sie möchten es wahrscheinlich nur 'Parameter' nennen, daher ist es von außen als' Student :: Parameter' definiert. – Quentin
ja. Ich habe nur eine abstrakte Sicht auf die Lösung :) – fgrdn