Αν και άργησα, να πω οτι αν είναι απολύτως απαραίτητο να έχεις γνώση του ποιός ανήκει σε τι χωρίς όμως τα "παιδιά" να περιέχουν πληροφορίες για τους "γονιούς" μπορείς να δημιουργήσεις μια ενδιάμεση κλάση η οποία θα παίζει το ρόλο του factory αλλά και του registry. Αυτή η κλάση θα είναι υπεύθυνη για τη δημιουργία "παιδιών" που ανήκουν σε "γονείς" μέσω κάποιας μεθόδου π.χ. CreateNewChild(objParent), όπου θα περνάς φυσικά τον "γονιό". Απλά, αντί να κρατάει το "παιδί" την πληροφορία, θα την κρατάει ένα άλλο object (ας το πούμε registry - υπάρχει design pattern που να πλησιαζει αυτό το concept Πανο; ).
Το θέμα είναι οτι και πάλι θα πρέπει να έχεις μια εξάρτηση από αυτό το registry, μια και θα πρέπει να ενημερώνεται όταν ένα "παιδί" ή ένας "γονιός" γίνεται dispose / nothing. Που σημαίνει οτι αναγκαστικά θα πρέπει τόσο τα "παιδιά" όσο και οι "γονείς" να πετάνε events για οτιδήποτε συμβαίνει που μπορεί να επηρεάσει το registry, και το registry να ακολουθεί το singleton pattern για να είσαι σίγουρος οτι υπάρχει ένα και μόνο ένα registry στο οποίο αναφέρεσαι ανά πάσα στιγμή.
Τα λέω πολύ χοντρικά βέβαια, αλλά κάπως έτσι είναι η ιδέα. Το θέμα είναι οτι όλο αυτο το concept εισάγει φοβερή πολυπλοκότητα στον σχεδιασμό σου, την οποία θα πρέπει να υλοποιήσεις μόνο αν είσαι απολυτως σίγουρος οτι τη χρειάζεσαι.
Σωτήρης Φιλιππίδης
DotSee Web Services