Dipendenze tra gli attributi di classe

1

Mi chiedo se esista un concetto per la dipendenza da attributo nella terminologia orientata agli oggetti?

È un esempio che mostra cosa intendo con dipendenza attributo:

2DShape class potrebbe avere un attributo area . Quindi, Rectangle è un 2DShape e ha length e width attributi. Ora, area dipende da length e width . È una dipendenza a senso unico.

Un altro esempio: LineSegment ha beginPoint , endPoint e slope attributi. Uno di questi attributi dipende da altri due. Ci sono delle dipendenze bidirezionali qui.

Il termine dipendenza potrebbe non corrispondere ai miei esempi. Tuttavia, penso che dovrebbe esserci un concetto che si adatta a questi casi nei linguaggi di modellazione o in qualsiasi linguaggio OO.

    
posta Q Q 29.08.2016 - 09:36
fonte

2 risposte

3

Come già detto, questo non è indicato come dipendenza. Tuttavia, il caso in cui gli attributi derivano da altri è così comune, che è stato esplicitamente affrontato per esempio. nello standard UML.

Gli attributi in linguaggio UML sono proprietà e c'è una sintassi specifica per dichiarare proprietà derivate anteponendole con / . Qui è una spiegazione più dettagliata.

Lo standard UML però non applica una certa implementazione delle proprietà derivate. Non importa se crei classi immutabili con valori precalcolati o pigri, implementa la proprietà derivata come metodo con o senza memoization, ecc. Ecc.

Infine, si noti che è possibile contrassegnare la proprietà di una classe come derivata e OCL generalmente consente di fornire una derivazione basata sulle proprietà di un'altra classe. Avere una derivazione cross-boundaries è probabilmente una cattiva scelta progettuale a causa del conseguente elevato accoppiamento di queste classi.

    
risposta data 29.08.2016 - 15:58
fonte
0
  • Questa non è dipendenza come la conosciamo nel linguaggio OO.
  • Nel caso di 2DShape length e wide sono input per la funzione che calcola area .
  • Potresti anche parlare delle precondizioni , come beginPoint e beginPoint non essendo null per poter calcolare slope .
risposta data 29.08.2016 - 09:46
fonte

Leggi altre domande sui tag