Domanda

Qualcuno può spiegare perché il nome " Decoratore " è stato scelto per la funzionalità trasmessa dal modello di design di Decorator?

Ho sempre trovato quel nome abbastanza fuorviante, perché il decoratore e l'interfaccia di marcatura suonano molto simili a me nel loro scopo. Tuttavia, mentre un pennarello non fa davvero "niente", i decoratori lo fanno certamente. Ma il termine decorazioni per me implica passività, il che non è proprio il caso di questo modello che viene utilizzato per aggiungere funzionalità.

È stato utile?

Soluzione

Credo che l'origine del termine derivi dall'uso esemplificativo della decorazione di un'interfaccia utente con componenti diversi, ad esempio barre di scorrimento, pulsanti di chiusura, ecc.

MODIFICA: Pagina di riferimento 308 in " Modelli di progettazione in C # " di Steven John Metsker:

  

Una delle applicazioni originali di DECORATOR (e presumibilmente l'applicazione da cui DECORATOR deriva il suo nome) risiede nella costruzione di componenti della GUI.

Altri suggerimenti

Penso che l'analogia sia che quando decori una casa in realtà non rompi muri o cose del genere, metti solo alcune cose (quante ne vuoi) in un modo che cambia l'aspetto (e la sua funzionalità). Penso che questa parola sia stata scelta per implicare non invadenza, e anche qualcosa di facoltativo.

Un decoratore "decora" un'interfaccia aggiungendo funzionalità extra ai metodi esistenti, ma in realtà non aggiungendo alcuno dei suoi. La decorazione non è essenziale per la funzionalità di base; altrimenti sarebbe stato incorporato nella classe base.

Perché stai aggiungendo nuove funzionalità a un oggetto esistente. In sostanza, stai "decorando" l'oggetto con la nuova funzionalità.

Ehi, lascia che sia il geek a inventarsi dei nomi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top