Le lezioni parziali sono moderne Programmazione orientata al soggetto?

3

Segue una discussione importante:

C # e altre lingue hanno reso le classi parziali più popolari. Ma non è davvero uno strumento che ha reinventato la ruota di programmazione orientata al soggetto? Che cosa ne pensate? La programmazione orientata agli argomenti dovrebbe essere insegnata di più e ottenere maggiore attenzione per aiutare i programmatori a utilizzare meglio le lezioni parziali? Risorse: link

Segue una traccia laterale facoltativa di bassa importanza per la discussione:

Io stesso uso una forma di soggetto-orientato quando faccio un progetto di hobby imperium nello spazio in unity3d. In unit3d i gameobjects (modelli 3d) che esistono nel motore 3d possono avere "script" (leggi classi o qualsiasi file di codice) collegati ad essi con alcune funzioni globali speciali che possono essere eseguite su ciascun frame. Questo è un terreno perfetto per utilizzare la programmazione orientata agli argomenti. Prendiamo ad esempio un gameObject di flotta, dato che posso associare una classe value (peso, nome, attacco, difesa), una classe gameRule che gestisce tutte le logiche di business e se ho bisogno di un nuovo soggetto, ad esempio "Raid" aggiungo solo un raid classe per il gameObject e tutti questi sono separati.

Tutto questo implementa un'interfaccia generale per il soggetto in modo che possano essere controllati e consultati da " IRaid = gameObject.GetComponent [di IRaid] se IRaid non è nullo:   codice "

    
posta Sirex 15.12.2011 - 14:15
fonte

3 risposte

1

Ad esempio, se modellino un protocollo come una classe (o xml, ecc.) uso una classe o forse alcune classi. Ma, se mai avessi bisogno di aggiungere funzionalità extra in cima a quelle classi, terrei il mio codice separato dalla classe principale, in un altro file, (className.Partial.cs) usando le classi parziali. In questo modo sembra essere un'implementazione più pulita e so esattamente dove andare ad aggiungere / chage stuff.

    
risposta data 15.12.2011 - 14:34
fonte
4

Almeno in C # lo scopo delle classi parziali è in gran parte mantenere il codice generato automaticamente separato dal codice digitato dai programmatori, non ho mai visto la necessità di avere una classe separata in due + file, sembra che ci sia era una buona ragione per farlo, probabilmente dovevano essere solo classi separate.

    
risposta data 15.12.2011 - 14:29
fonte
2

"Classi parziali" è un modo per suddividere l'implementazione di una classe in file diversi, che è solo una separazione fisica. Punto. Niente di più. Non implica alcuna separazione logica di per sé.

Per quali scopi si usa questa funzione è una cosa diversa. In genere questo può essere usato per separare il codice generato automaticamente dal codice scritto a mano. E puoi anche usarlo per dividere il tuo codice di classe in gruppi logici. Oppure lo usi per raggruppare metodi con nomi che iniziano con A-E in un file, F-M in un secondo e così via (sto scherzando).

    
risposta data 15.12.2011 - 14:58
fonte

Leggi altre domande sui tag