Dieses Projekt ist in PHP, aber ist ziemlich Sprache agnostic. Ich baue ein Projekt, das das folgende MVC-Format hat
Main_Class
Main_Class_Common
--> Class_A
--> Class_B
--> Class_C
--> Class_...
--> Class_K
Die ursprünglichen Anfragen gehen an die Main_Class, die dann die entsprechende Hauptunterklasse enthält. Die meisten Anfragen müssen nur auf Daten in ihrer eigenen Klasse zugreifen. Es gibt jedoch ein paar wenige klassenübergreifende Daten. Alle Unterklassen benötigen jederzeit Zugriff auf gemeinsame Funktionen in Main_Class_Common.
Zum Beispiel,
Main_Class
Main_Class_Common
--> Class_Projects
--> Class_Clients
Normalerweise benötigt Class_Projects nie Daten von Class_Clients, außer in einer Funktion, die es möglicherweise aufrufen muss $class_clients->get_client_details($client_id);
und dasselbe geschieht gelegentlich auch in umgekehrter Richtung.
Beide Klassen müssen jedoch in der Lage sein, die $main_class_common->clean_input($myinput);
.
Derzeit verwende ich Class class_a extends main_class_common()
für den Zugriff auf gemeinsame Funktionen, was perfekt funktioniert. Aber ist der beste Weg, um Klasse_B von Klasse_A zugreifen, um nur die globale $class_b-Variable gelegentlich zugreifen oder sollte ich die möglichen freigegebenen Funktionen in die Main_Class_Common verschieben, auch wenn Sie nur gelegentlich verwendet werden?
Das Projekt befindet sich derzeit noch in der Entwicklungsphase, so dass die derzeitige Implementierung leicht geändert werden kann.