2014-09-08 2 views

risposta

6

Il pattern dell'interprete ha poco a che fare con il pattern composito. Si potrebbe implementare parti di un interprete con un composito - per esempio, here un esempio è dato di un OrExpression:

public class OrExpression extends Expression{ 
    private Expression expression1 = null; 
    private Expression expression2 = null; 

    public OrExpression(Expression expression1, Expression expression2) { 
     this.expression1 = expression1; 
     this.expression2 = expression2; 
    } 

    public boolean interpret(String str) { 
     return expression1.interpret(str) || expression2.interpret(str); 
    } 
} 

Questo è un esempio del pattern Composite, dove il OrExpression è composta di altri due espressioni e il risultato di ciascuna passata a una funzione booleana or.

Generalmente, però, questo è solo una piccola parte di una possibile interprete - è più di un concetto di alto livello di una semplice composito e utilizzata solo nei domini di nicchia abbastanza (che hanno bisogno di interpretare stringhe arbitrarie, forse per allora eseguire comandi o rappresentare un insieme di regole)

2

Innanzitutto Interprete è comportamentale pattern e composito è strutturali. Quale esso stesso dice abbastanza di come dovresti considerare di usarli. I modelli di progettazione fondamentalmente strutturati riguardano le relazioni tra entità, rendendo più facile per queste entità lavorare insieme. D'altro canto, i modelli di progettazione comportamentale sono utilizzati nelle comunicazioni tra entità e rendono più semplice e flessibile la comunicazione tra queste entità.

Quindi la risposta alla tua prima domanda semplice è detto - No.

Aggiornamento: Ho trovato informazioni che possono essere useful to you here.

Gli schemi strutturali vengono utilizzati per definire le proprietà statiche del sistema (vedere lo schema delle classi).

Esempio: il modello di fabbrica può essere utilizzato per creare entità che costituiscono il sistema. È possibile avere il pulsante oggetto che ha proprietà grafiche diverse su Windows rispetto a OS X. Il modello di fabbrica creerà il pulsante indipendentemente dal sistema operativo e l'oggetto creato avrà le stesse interfacce su entrambi i sistemi operativi esporre lo stesso comportamento pur avendo interni diversi.

I modelli comportamentali sono utilizzati per definire il comportamento dinamico del sistema (vedere Diagrammi Attività, Sequenza ecc.).

Esempio: il pattern dell'adattatore può essere utilizzato in runtime per consentire l'interfacciamento di 2 entità che non condividono l'interfaccia tra di loro. Cambia in modo efficace il comportamento di un oggetto in fase di runtime.

0

Sono d'accordo con altre risposte.

Inoltre, sono modelli completamente diversi.Per quanto ricordo dalla classe;

Composito; usiamo questo modello per produrre elementi hierarchical. Come un albero genealogico, ci sono elementi genitore e figlio, ma ogni persona ha un diverso attributes con il fatto di essere attributo persona (base) ma il nostro focus su come si relazionano tra loro in questo schema.

Interprete: pensa questo modello come una specie di compiler. Supponiamo che stiate implementando un motore di regole e valutate alcuni elementi usando gli elementi del linguaggio (segni) in un modo diverso. Ad esempio regular expressions.

string item="1500$-240&DSCNT="; var out = item.Evaluate(); //output : 1500$-240$ = 1260$ We applied $240 discount by this text expression