Domanda

Per ogni prodotto sono associati i calcolatori di costo come:. Sconto, sconto dal commerciante, bonus da commerciante, ecc sconto mensile in futuro, sarebbero stati aggiunti altri calcolatori di costo

Abbiamo una classe di prodotto concreto e molti decoratori per ogni calcolo dei costi. Tutti i prodotti devono utilizzare tutti i calcolatori, perché i calcolatori decidono di applicare i loro calcoli per le proprietà del prodotto, come prodotto ID del commerciante, categoria id, colore, ecc.

E, ci sono milioni di prodotti nel nostro sistema, che deve essere calcolato. Quindi, è meglio memorizzare nella cache il calcolatrici decorati. Perché, decorando ogni entità prodotto in fase di esecuzione sarebbe costoso. Ma questo è difficile con motivo decoratore. Sembra un odore di utilizzare questo modello nella nostra situazione.

Cosa suggerisci? Dovremmo usare decoratori, strategia o modello di catena di responsabilità? O no-pattern.

È stato utile?

Soluzione

  

Tutti i prodotti devono utilizzare tutta la   calcolatrici, perché i calcolatori   decidere di applicare i loro calcoli   le proprietà del prodotto, come prodotto   ID del commerciante, categoria id, colore, ecc.

Se avete bisogno di avere tutti i prodotti utilizzano tutti i decoratori, allora non stai guadagnando davvero alcun beneficio dal modello. Questo significa che se si implementa un nuovo decoratore, tutte le entità esistenti devono essere aggiornati per utilizzare tale nuova decoratore?

pittura dovrebbero essere applicati ai prodotti solo quando necessario, e solo i decoratori che sono necessari devono essere applicate.

Credo che si dovrebbe rimuovere la decisione dal di dentro i decoratori; un'altra cosa dovrebbe decidere se applicare un decoratore, nel qual caso avvolge il prodotto nei decoratori appropriate. In questo modo si sa che se un prodotto è avvolto in un decoratore, che sta interessando decoratore (effettuando?) Del prodotto.

Altri suggerimenti

In un modello di strategia, l'intento delle modifiche degli oggetti.

Quindi, penso che la strategia sarebbe una buona scelta.

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