Nel mio progetto, ho una collezione di classi. Queste classi contengono per lo più dati che vengono aggiornati di rado o per niente - cioè non fanno molto do - il loro scopo è quello di passare intorno a oggetti di consumo che fanno cose, separando i dati dalla funzionalità.
Vorrei continuare questo modello, consentendo all'utente di trattarli come tali, cioè possono essere serializzati / deserializzati senza codice speciale, possono essere facilmente usati per comporre classi più grandi, sottoclassi, ecc.
Il problema è che, come molte cose di controllo come la GPU, non sono affatto realmente disaccoppiati o apolidi, perché per ognuno di essi c'è un intero carico di risorse che devono essere create e smaltito durante la vita dell'applicazione - ma l'utente non deve preoccuparsi di questo.
Mi piacerebbe conoscere il modo preferito per allegare tutte le informazioni all'oggetto semplice in un modo che sia sicuro, mantiene l'illusione dell'apolidia, ma è anche chiaro a chiunque stia guardando il codice cosa sta succedendo (anche , gli oggetti sono definiti in diversi gruppi).
Q.PerchénonbastainserireAinBepassareattornoall'oggettoB?
R.Poichél'utentecreal'oggettoAefunzionasoloconl'oggettoAenondovrebbenecessariamenteconoscerel'oggettoBesistente.
Q.Perchénonutilizzarelefabbricheecrearel'oggettoC?
R.Perchél'AssemblyAnonpuòcontenereclassicompostedauninterocaricodioggettiObject-A-like(perchélafactoryverràdefinitanell'assemblyBinmodochenonpossanoessereistanziate).
Q.Quindicomevienecreatol'oggettoB?
A.L'oggettoBvienecreatoepopolatosurichiesta,quandol'oggettoAvienepassatoaunmetodochenehabisogno.
Nota-Sochequestoproblemanonè"difficile" e ci sono molti modi per farlo (al momento ho un membro astratto aggiunto a tutti quelli che sono inseriti nel consumatore e funziona OK), I vuoi solo alcune nuove idee / opinioni su ciò che è il modo migliore - cosa ti piacerebbe vedere se hai ereditato il codice?