Come ottenere concetti di programmazione orientati agli oggetti? [chiuso]

1

Qual è il modo migliore o le migliori risorse o tutorial per imparare la programmazione orientata agli oggetti?

Ad esempio, quando inizio un programma con Java e tutto il mio codice va in una sola classe e non posso stimare quando ho bisogno di creare nuove classi e operare su queste classi insieme.

    
posta fthkk 18.09.2013 - 13:28
fonte

3 risposte

3

Una classe deve mirare a fare una cosa e farla bene. Nient'altro.

C'è dell'altro, ma questa è la cosa principale. Se ci passi non puoi sbagliare. Se la tua classe fa troppo, è il momento di suddividerla in parti più piccole.

Questo è noto come Principio di responsabilità singola (enfasi mia) :

In object-oriented programming, the single responsibility principle states that every class should have a single responsibility, and that responsibility should be entirely encapsulated by the class. All its services should be narrowly aligned with that responsibility.

Nota che sto solo rispondendo al tuo esempio. Per il resto, la tua domanda è troppo ampia. La tua migliore scommessa per "ottenere" OOP sarà effettivamente praticare OOP. Basta:

  1. Leggi alcuni libri.
  2. Fai alcuni progetti per infrangere questi concetti un paio di volte.
  3. Non provare a memorizzare tutti questi nomi di fantasia (incluso lo SRP sopra).
  4. Ottieni il tuo codice bashed e rivisto .
risposta data 18.09.2013 - 13:35
fonte
0

Inizia nella fase di progettazione, prima di scrivere qualsiasi codice. Pensa a ciò che il tuo programma sta modellando. Se si tratta di un sito di e-commerce, potresti pensare a Cliente, ordine, prodotto e così via. Questi nomi diventano i tuoi primi oggetti.

Quindi pensi a quali processi devono verificarsi. Ad esempio, quando il sito web prende un nuovo ordine, ci sarà bisogno di essere un punto in cui si prende il pagamento per l'ordine. È possibile definire un oggetto come Pagamento, e questo oggetto rappresenta i dettagli del pagamento e lo stato del pagamento. Ora i diversi tipi di pagamento devono essere elaborati in modo diverso. Pertanto, è possibile definire un'interfaccia comune IPaymentProcessor e quindi creare oggetti processore di pagamento che elaborano ogni particolare tipo di pagamento. ad esempio PayPalPaymentProcessor e VisaPaymentProcessor.

In questa fase, stai iniziando a scrivere codice orientato agli oggetti ...

    
risposta data 18.09.2013 - 13:43
fonte
0

L'API Sun / Oracle, in particolare Javadoc ma anche il codice sorgente stesso, offre molti buoni esempi. Userai comunque questa roba; quando lo fai, dai un'occhiata più difficile di quello che devi fare per portare a termine il lavoro. In particolare, JTable è molto interessante. Esso e le sue classi associate hanno troppi metodi, che lo confondono un po 'come uno strumento di apprendimento. (Mi sto convincendo che i metodi di convenienza sono malvagi.) Ma nota in particolare come usa TableModel. (E anche righe, selezione di righe, colonne, stampa di una cella, modifica di una cella ....)

Può volerci un po 'per capire cosa stava facendo Sun. OOP tende ad essere ad angolo retto con tutto il resto; devi far pensare il tuo cervello in modi diversi e poi trattenerlo pensando in modo diverso.

Per provare a mettere OO in due frasi: Un oggetto agisce come un server, restituendo informazioni o intraprendendo un'azione su richiesta. In tal modo può anche fungere da client e utilizzare altri server per eseguire operazioni o restituire informazioni. (E può trattare, su richiesta, un client come server e fornire informazioni sulla propria pianificazione e iniziativa.)

    
risposta data 18.09.2013 - 16:26
fonte

Leggi altre domande sui tag