Questo ha "sempre" mi dava fastidio ...Come dovrei nominare un tipo "ombrellone" in modo sano?
Diciamo che ho un'interfaccia IFiddle
e un'altra interfaccia che non fa altro che aggregare diverse distinte IFiddle
s:
public interface IFiddleFrobbler
{
IFiddle Superior { get; }
IFiddle Better { get; }
IFiddle Ordinary { get; }
IFiddle Worse { get; }
IFiddle Crackpot { get; }
}
(il calcestruzzo IFiddleFrobbler
s e IFiddle
s dipendono dalle configurazioni e sono creati da una fabbrica.)
Mi imbatto ripetutamente nella denominazione di tali tipi di "ombrelli" - Voglio scambiare il "Frobbler" con qualcosa di descrittivo.
- "Collection", "Lista" e "Set" non sono abbastanza buono, nel senso che non è una collezione/list/set dove gli elementi possono essere enumerati, aggiunti o rimossi.
- "Manager" è fuori, perché non viene eseguita alcuna gestione: la fabbrica e le configurazioni lo gestiscono.
- "Aggregator" lo fa sembrare direttamente dal libro GoF (anche se non credo che violerebbe "la legge di Demeter" - è fuori tema qui).
Per favore, mi illumini, qual è un buon schema di denominazione per i miei tipi di "ombrelli"?
Edit: Come xtofl pointed out in a comment, c'è in realtà più semantica per questo che ho esposto sopra. Se io invece fare quanto segue, penso che il mio bisogno è più chiaro:
//
// Used for places where the font width might need
// to be tapered for a rendered text to fit.
//
public interface ITaperableFont
{
Font Font { get; }
Boolean CanTaper { get; }
void Taper();
}
//
// Used for rendering a simple marked-up text in
// a restricted area.
//
public interface ITaperableFonts
{
ITaperableFont Biggest{ get; }
ITaperableFont Big { get; }
ITaperableFont Normal { get; }
ITaperableFont Small { get; }
ITaperableFont Smallest { get; }
}
In realtà, ho identificato il mio problema nell'aggiunta di vita reale di cui sopra come un difetto di progettazione, non è un problema di denominazione, l'odore di che diverse persone hanno indicato di seguito.
IFiddleUmbrella? :) –
Se non riesci a nominarlo, allora sento odore di pesce nel design. –
@Pop: corretto. È un modo pragmatico di semplificarmi la vita e so che potrebbe essere considerato un odore. –