Per i puristi della programmazione orientata agli oggetti, sono eresia di @annotations?

2

Domanda filosofica:

Un problema che mi è venuto in mente è che, specialmente quando si usano framework come Spring o Hibernate (che sono ovunque nell'industria), abbiamo annotato tutto.

Ovviamente questo è meglio delle dichiarazioni XML dichiarative ... ma significa anche che ci stiamo impegnando in una programmazione dichiarativa dal momento che il motore (framework) si sta prendendo cura di fare qualcosa per noi. Il motore stesso può essere scritto in Java (OOP), ma stiamo essenzialmente programmando usando le dichiarazioni.

es. @Autowire - Inject my Component qui, non mi interessa come lo fai o cosa succede in background.

Quindi questo sviluppo è dovuto alle annotazioni herecy? O è proprio la stessa cosa che usare i file di configurazione (XML e proprietà).

Informazioni di base:

"Programmazione dichiarativa in Java" - link

    
posta Menelaos Bakopoulos 31.03.2016 - 17:30
fonte

1 risposta

5

Non vedo alcuna incompatibilità fondamentale tra annotazioni o OOP. Le annotazioni possono essere dichiarative (ad es. @Nullable - 'questa cosa ha tali e tali proprietà'), che non è diversa da ciò che fanno le interfacce o i sistemi di tipi. Oppure possono definire il cablaggio / IOC (ad es. @Autowire) - che è costruito in cima ai concetti OOP in primo luogo.

Il che non vuol dire che le annotazioni siano sempre buone: puoi abusarne.

In particolare, il cablaggio "hard coded" con annotazioni ("dammi quella particolare istanza di un oggetto") non è diverso (e non migliore) di un "nuovo": un accoppiamento stretto tra due oggetti e un codice odore.

Codice saggiamente.

    
risposta data 31.03.2016 - 17:59
fonte

Leggi altre domande sui tag