Non riesco a capire l'applicazione di oops Come posso sviluppare la comprensione dell'applicazione di oops? [chiuso]

0

Sono uno sviluppatore della tecnologia PHP, sono a conoscenza di quasi tutte le basi di OOPS, ma non riesco ancora a trovare il modo di applicare questi concetti su una programmazione procedurale.

Lo faccio in modo molto ortodosso, ma non so perché lo sto codificando in quel modo. Non ho mai avuto un ragionamento per giustificare le mie applicazioni OOPS, il che mi ha inferito che sono peggiore in OOPS, per favore aiutami ragazzi a capire l'applicazione di OOPS.

    
posta OM The Eternity 25.07.2012 - 08:07
fonte

2 risposte

4

In primo luogo, è piuttosto difficile riassumere qualcosa di complicato come OO in poche frasi. Ti consiglierei di trovare dei buoni libri sull'argomento e leggerli mentre pratichi ciò che predicano.

Detto questo, una breve spiegazione sarebbe: l'orientamento dell'oggetto è semplicemente un modo particolare di strutturare il codice. Stai provando a creare pezzi di codice che sono liberamente accoppiati e coesi. Abbastanza sciolto significa che non si appoggiano inutilmente l'uno sull'altro, e il significato coeso che le cose che dovrebbero essere vicine, lo sono. L'incapsulamento è il principio di far apparire una classe il più semplice possibile al mondo esterno, pur contenendo la complessità necessaria, dentro di sé. Stai anche cercando di ridurre la ripetizione e la duplicazione di codice e logica (DRY, ecc.).

Questi sono i principi generali e dovresti dedicare molto tempo a cercare di capire perché questi sono buoni principi e cosa significano. Tendono ad essere abbastanza universali, quindi sarai in grado di applicarlo al di fuori di OO. Una volta che avete questi "principi fondamentali" (e sono non semplice) verso il basso, si capirà whys , e può fare le proprie chiamate di giudizio sul design. Sfortunatamente, non riesco a pensare a nessun altro modo per entrare nei dettagli senza scrivere pagine e pagine, quindi lo lascerò. Ultimi suggerimenti: cerca di essere sicuro di capire perché stai facendo qualcosa; ma sii paziente: non ho quasi mai visto nessuno che fosse più che poco competente in OO con meno di 5 anni di esperienza.

    
risposta data 25.07.2012 - 08:37
fonte
3

È davvero molto semplice. Riguarda il legame tra i dati e la logica che manipola tali dati.

Quindi hai: -

  • incapsulamento. tutte le definizioni logiche e dati relative all'oggetto sono incapsulate in una classe.
  • Interfacce. alcuni dati e metodi devono essere esposti al resto del mondo se la classe deve essere utile. Dati e metodi così esposti formano l'interfaccia.
  • Inheritance. Puoi creare una classe più specializzata ereditando le funzioni e i metodi di una classe base in modo da non dover codificare nuovamente la logica.

Tutte le altre cose Polymorphism, Abstract Classes, Sottoclassi, Super Classes è quasi una ciliegina sulla torta e varia notevolmente da lingua a lingua.

    
risposta data 25.07.2012 - 08:46
fonte