Aiutami a capire i seguenti punti sul modello strategico, come si riferisce al principio aperto / chiuso

3

Sto imparando i modelli di progettazione. Ho letto l'articolo questo . Punto n. 3 non è chiaro per me. Lo scrittore ha detto che la strategia ti consente di cambiare il coraggio di un oggetto . Ma questa è una violazione del principio open-close . Ho sbagliato? Se sbaglio, allora aiutami a capire che cosa ha voluto descrivere lo scrittore.

  1. La strategia è come il metodo Template tranne che nella sua granularità.
  2. Lo stato è come la strategia tranne che nel suo intento.
  3. La strategia ti consente di cambiare il coraggio di un oggetto. Decorator ti consente di cambiare la pelle.
  4. Stato, strategia, bridge (e ad un certo grado dell'adattatore) hanno strutture di soluzione simili.
  5. Tutti condividono elementi dell'idioma 'maniglia / corpo'. Differiscono nell'intento, cioè risolvono diversi problemi.
  6. La strategia ha 2 diverse implementazioni, la prima è simile allo stato. La differenza è nei tempi vincolanti (la strategia è un modello bind-once, mentre lo stato è più dinamico). Gli oggetti strategici spesso fanno buoni pesi.
posta Atish Dipongkor 19.06.2013 - 13:20
fonte

1 risposta

3

Strategy lets you change the guts of an object. But it is the violation of open-close principle. Am I wrong??

No, è vero il contrario, è un esempio standard per l'OCP. Nell'esempio mostrato, si modifica o si estende il comportamento di TransportationToAirport (aperto per le estensioni) senza modificare questa classe (chiuso per le modifiche). Ottieni un nuovo oggetto Strategy (come Train ) e usalo insieme al tuo oggetto TransportationToAirport non modificato.

    
risposta data 19.06.2013 - 13:56
fonte

Leggi altre domande sui tag