Come funziona il pattern Proprietà?

0

Mi riferisco al pattern (aka Universal Design Pattern) come discusso in questo post del blog

Modello di progettazione universale

Suppongo di non essere del tutto chiaro su come usarlo nella pratica. E come funziona per realizzare operazioni o compiti.

In particolare riguardo a questa spiegazione

It's the core API for any collection that maps names to values:

get(name)
put(name, value)
has(name)
remove(name)

There are typically also ways to iterate over the properties, optionally with a filter of some sort.

Le chiavi sono il nome? E quali sono i valori?

E come esegui le operazioni? Dove sono le istruzioni per l'esecuzione di attività e operazioni sui dati memorizzati? e come si chiamano? Sono incorporati nei "valori" come classi?

    
posta erotavlas 19.01.2015 - 18:00
fonte

1 risposta

2

Sì, le Chiavi sono il nome o l'identificativo di ciascuna proprietà.

Puoi aggiungere un metodo changeValue .

Questo modello è anche noto come Dynamic Object Design Pattern .

Esempio (Pseudocodice):

void Example()
{
  KeyValueList MyControl = new KeyValueList();
    MyControl->put("id", "MyControl");
    MyControl->put("x", 34);
    MyControl->put("y", 125);
    MyControl->put("height", 200);
    MyControl->put("width", 250);
    MyControl->put("filled", false);

  MyWindow->insertControl(MyControl);
} // void Example()

Come puoi controllare nell'esempio precedente, è comune usare un elenco che memorizza elementi chiave, dove le chiavi sono di string tipi e non possono essere duplicati. I valori possono essere memorizzati come un tipo specifico per ogni valore, come integer o logical .

Oppure può essere utilizzato come string , simile a H.T.M.L. o X.M.L. attributi, come questo esempio:

Esempio (Pseudocodice):

void Example()
{
  KeyValueList MyControl = new KeyValueList();
    MyControl->put("id", "MyControl");
    MyControl->put("x", "34");
    MyControl->put("y", "125");
    MyControl->put("height", "200");
    MyControl->put("width", "250");
    MyControl->put("filled", "false");

  MyWindow->insertControl(MyControl);
} // void Example()

Entrambi i casi sono facoltativi.

L'esempio è generico, identificatori e tipi, può cambiare dalla libreria o dal linguaggio di programmazione.

Questo modello di progettazione è comunemente usato nei linguaggi di programmazione che non sono orientati agli oggetti, (come "funzionale" o "procedurale"), per emulare oggetti.

Viene anche utilizzato in linguaggi di programmazione che sono già orientati agli oggetti, ma le proprietà sono progettate staticamente e non possono essere aggiunte o rimosse durante l'esecuzione.

Saluti.

    
risposta data 19.01.2015 - 18:38
fonte

Leggi altre domande sui tag