Costruisce il linguaggio Java per far rispettare le decisioni di progettazione

4

Quali costrutti nei linguaggi OOP (in particolare Java) ti consentono di imporre decisioni e intenzioni progettuali?

Penso che alcuni esempi potrebbero essere la parola chiave "finale", i modificatori di accesso, i metodi di template, forse le interfacce - ma chiaramente sto avendo problemi a trovare un elenco completo.

Alcuni costrutti, come l'ereditarietà, sembrano adattarsi a questo criterio, ma trovo difficile spiegare esattamente perché.

[modifica] Risulta che ho preso alcune note in più: tipi Enum, costruttori, costanti e tipi generici. Sebbene, come in tutte le cose, spieghi perché sarà più importante della semplice lista di esempi.

    
posta FalseAzure 28.05.2013 - 09:57
fonte

1 risposta

3

Prima di tutto, penso che la tua domanda abbia un argomento che è di grande importanza in questi giorni, ovvero pensare e documentare decisioni / intenzioni progettuali .

In Java, i principali meccanismi per esprimere davvero l'intento oltre a utilizzare solo le parole chiave disponibili sono le asserzioni e annotazioni , perché puoi indicare, ad esempio, condizioni pre / post, invarianti o anche le specifiche su parti dei tuoi programmi che possono essere su un livello più alto di astrazione di quanto possa essere il codice. Il vantaggio viene alla luce se devi leggere o mantenere un pezzo di codice scritto da qualcun altro e semplicemente non puoi capire la sua funzionalità.

In aggiunta a ciò, ogni parola chiave ha ovviamente una certa semantica e per questo esprime anche intrinsecamente alcune intenzioni quando la usa. In realtà, si potrebbe affermare che l'utilizzo di qualsiasi parola chiave predefinita in qualsiasi lingua potrebbe essere visto come una decisione progettuale, anche l'utilizzo di una lingua è già una decisione progettuale.

Il punto importante è che semplicemente non puoi esprimere tutte le tue intenzioni attraverso codice e commenti senza perdere la "grande immagine", cioè il codice è sicuramente non l'unica verità. Pertanto abbiamo un "costrutto" chiamato architecture che ha lo scopo di rendere visibili e documentare quelle decisioni di progettazione e le intenzioni che stiamo facendo mentre pensiamo a un sistema. Certo, possono essere applicati in codice per rendere il codice più leggibile e navigabile, ma il codice non dovrebbe essere il luogo principale in cui vengono dichiarate le intenzioni.

    
risposta data 28.05.2013 - 16:35
fonte

Leggi altre domande sui tag