Sto programmando una libreria API che fornisce classi come Document, Folder, ContentElement, Action ...
Queste classi sono fondamentalmente solo la loro rispettiva rappresentazione dal database.
Mi piacerebbe estendere (non significa necessariamente sottoclasse qui, potrebbe anche essere composizione) queste classi per una più facile gestione nella mia applicazione, per esempio. sovrascrivere toString () e fornire metodi di manipolazione dedicati per i miei casi d'uso.
Il nome di queste classi 'wrapper' pone un problema:
- andare su MyDocument, MyFolder ... è solo brutto (anche con un prefisso migliore)
- lo stesso vale per la notazione postfix DocumentWrapper, FolderWrapper ...
- L'uso dello stesso identico nome causa ambiguità e conflitti di denominazione
- L'inventario di nuove parole (ad esempio File anziché Documento e Raccoglitore invece di Cartella) nasconde la classe API che viene incapsulata e fuorvia l'utente delle mie classi perché non può usare la sua solita terminologia
In un mondo ideale, aggiornerei semplicemente le classi API alle mie esigenze che purtroppo non posso poiché la libreria è closed source.
C'è un altro modo per "estendere senza ridenominare"? Ho perso o devo andare con una delle soluzioni sopra?