Also auch bei einer Desktop-Anwendung würde ich dem Model keine weiterführende Funktionalität zuweisen, sondern dieses eben auch an eine Methode einer Verwaltungsklasse übergeben.
Diese Verwaltungsklasse ist bei C/S aber nur eine Durchreiche an den Server und die Bearbeitung findet dort statt.
Also statt
Delphi-Quellcode:
TStudent.SaveTo(WhereEver);
TStudent.SwipNames(AAge : integer)
nehme ich lieber
Delphi-Quellcode:
TSchoolManager.Save( ASchoolSubject : TSchoolSubject );
TSchoolManager.SwipNames( APersonSubject : TPersonSubject; AAge : Integer );
Delphi-Quellcode:
TSchoolSubject = class
...
end;
TPersonSubject = class(TSchoolSubject)
...
end;
TStudent = class( TPersonSubject )
...
end;
Warum?
Der Manager weiß, ob und wenn ja wohin und wie er speichern soll.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)