Associazioni di modellazione

0

Sto lavorando alla fase di progettazione di un progetto di piegatura della carta. Ho alcune domande in questo. Parte della dichiarazione del problema dice "Un web può contenere uno o più nastri al suo interno e può contenere anche un gruppo di nastri piegati insieme al suo interno."

Come modelli l'associazione per questo? Ho trovato due soluzioni

i) Mantiene due associazioni, una tra il web e il ribbon e l'altra tra il ribbon
    e la classe del gruppo. In questo modo, il web contiene solo nastri e quando si elaborano i nastri, è necessario verificare se fa parte di un gruppo. Nota che il comportamento del nastro cambierà se fa parte di un gruppo

ii) Introdurre una nuova classe chiamata Childelemnt e associarla al web. Sia Ribbon che Group condivideranno l'interfaccia di Childelement.

Quale pensi sia meglio? Se hai altre soluzioni, faccelo sapere.

Ringraziando tutti in anticipo,

Pradeep

    
posta Pradeep 30.07.2014 - 04:51
fonte

1 risposta

0

Ha senso che gli oggetti condividano un'interfaccia se condividono operazioni o proprietà. Nel tuo caso, entrambi i nastri e i gruppi possono essere parte di un web, quindi ha senso quindi condividere un'interfaccia, che è la tua seconda opzione (che a volte viene chiamata composito modello). Consiglio di chiamare l'interfaccia WebElement .

Ci sono alcune complessità aggiunte, come il fatto che un nastro può essere parte del web, un gruppo o (presumibilmente) non collegato. Avrai bisogno di logica per far rispettare quelle regole. Dato che i nastri possono essere membri di web e gruppi, probabilmente dovrai mantenere due associazioni, come menzioni nella tua prima opzione, ma i due non sono correlati tra loro e sono una conseguenza del fatto che il tuo sistema ha due tipi di contenitori ( web e gruppo).

Infine, per modificare il comportamento di un nastro a seconda che faccia parte o meno di un gruppo, potresti utilizzare il strategia modello.

    
risposta data 30.07.2014 - 22:40
fonte

Leggi altre domande sui tag