Considera un deposito di informazioni sulle citazioni. contenenti libri, articoli, riviste, libri ed articoli per conferenze. Il tuo compito è formattare il contenuto del repository per il consumo.
Prendiamo due approcci alla formattazione. La National Library of Medicine (derivata dal Vancouver Project) specifica le citazioni in un modo particolare, influenzando principalmente il modo in cui i nomi degli autori sono disposti. NLM differisce dalla formattazione American Psychological Association (APA). Il tuo compito è fornire un approccio generale alla formattazione delle citazioni utilizzando almeno questi due standard di formattazione. Il modello di visitatore è una buona idea.
Ora devi pubblicare queste citazioni e le tue scelte di output sono: testo normale, PDF, HTML, RTF e MS Word (OOXML) o ODF. Alcuni di questi elementi richiedono strategie di layout diverse, a seconda del tipo di formato (i rientri APA che seguono le righe, NLM no).
"Double visitor" non funziona così bene. Hai davvero bisogno di qualcosa di equivalente a "tripla spedizione".
Ora, questo non vuol dire che non ci siano approcci che aggirano il triplo dispaccio. Per l'esempio precedente, ho finito con la creazione di classi di mix e helper per fornire la versione finale della pubblicazione. Questi mixin e aiutanti sono realmente dove si è verificata la terza spedizione. Ho anche valutato la pubblicazione in un denominatore comune e l'ho post-elaborata per ottenere il giusto formato di output, ma era ... ingombrante.