Da allora ho cambiato la mia posizione in proposito.
L'utilizzo di oggetti in actionscript3 ha servito bene per aumentare la modulabilità.
Vorrei speculare che, come me, i vantaggi di OOP sono consensi e difficili da trovare per la maggior parte degli sviluppatori flash principianti.
Penso che ci siano davvero due ragioni per questo.
1.) parlare delle nozioni di base è noioso, quindi la maggior parte delle informazioni è così complicata. OOP sta davvero rompendo un sistema in parti riutilizzabili comprensibili.
2.) la programmazione procedurale è simile al flusso di lavoro, che si blocca in un certo flusso di lavoro, ma per begining programmatori che lo rende più facile da comprendere
3.) Un sacco di flash è su come gestire lo stato di il widget flash, quindi ha un certo livello di senso per gestire le informazioni in un unico punto centrale.
---------------- ---------------- risposta originale
faccio parte di quella comunità AS che ama (e usa) singoletti.
Sono relativamente nuovo alla programmazione (3 anni di PHP/MySQL/Javascript/Actionscript proffesionally).
Penso che esista una chiara distinzione tra la programmazione modulare e l'ereditarietà classica basata sulla classe OOP.
Programmazione modulare, che da quello che capisco è una parte importante di OOP, è una parte estremamente importante della progettazione del programma efficace.
Qualsiasi cosa utilizzata più di una volta può essere spostata in una funzione separata. Gruppi di operazioni che condividono funzionalità o attributi simili possono essere separati nelle loro parti comuni e quindi le diverse parti si uniscono alla loro istanza.
Tuttavia, ritengo più efficace per fare questo con una collezione di moduli interconnessi
A mio parere la maggior parte della programmazione orientata agli oggetti di base ereditarietà è solo aria calda. I moduli che interagiscono tra loro è un modo molto più efficace per modellare le attività di un programma che 15 versioni di fondamentalmente la stessa cosa.
Faccio un core e creo moduli per l'atatch nel core, ma non ho mai il sub-object come un'estensione del core. Penso che estendere una classe sia ingombrante e stagnare lo sviluppo eliminando la necessaria flessibilità da esso.
Uno dei motivi per cui ho spesso letto (e ascoltato l'OOP basato sull'ereditarietà) è che aumenta la leggibilità e la sostenibilità. Per me tutto questo significa che i programmatori preferirebbero utilizzare un sistema che sia facile per loro rispetto a un sistema efficace per il programma.
Io sono tutto per scrivere il codice più chiaro e comprensibile possibile ma solo fino e non oltre il punto in cui inibisce la creatività e la flessibilità di un programma.
Sono per OOP ma preferisco un singolo, un prototipo o un aggiornamento basato su modulo.
Trovo ironico perché, per me, usare estensivamente i singleton sembra utilizzare un linguaggio di programmazione funzionale. – Kai
Bene, non ci sono confini tagliati e secchi tra queste tecniche. La buona pratica si evolve per prendere in prestito i pezzi migliori da tutti loro. – skaffman
@Kai: Davvero? Perché?Per me sembra esattamente il contrario: i singletons promuovono lo stato globale (quindi scoraggiano l'idempotenza), mentre i linguaggi funzionali incoraggiano pure funzioni (che scoraggiano fortemente lo stato globale/incoraggiano l'idempotenza). –