Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212

    [OOP] Classi, sottoclassi, composizione

    Salve a tutti,

    considerando che ho 2 classi: Categoria e Prodotto relazionate tra loro,
    per gestire gestire la categoria di un prodotto in questo modo:

    Codice PHP:
    Prodotto pr = new Prodotto();
    pr.Categoria.Nome "pippo"
    è corretto il modo in cui ho scritto queste classi, o esiste qualche altra tecnica?
    Accetto qualsiasi consiglio e suggerimento a buon rendere... GRAZIE!!!

    Codice PHP:
    class Categoria
    {
    public 
    string Nome;
    public 
    string Descrizione;
    }

    class 
    Prodotto
    {
    public 
    string Nome;
    public 
    Categoria Categoria

    public Prodotto()
    {
    Categoria = new Categoria();
    }


  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quale linguaggio stai trattando? C#?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    si.. C#!

  4. #4
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    Ciao Alka,
    ma il nome del linguaggio trattato me lo hai chiesto per poi darmi un aiuto o solo per capire se spostarmi?

    Ho visto che sul tema OOP dai spesso chiari suggerimenti sul forum e ho pensato e sperato per un attimo che il tuo interesse al mio quesito sarebbe servito a mettere fine alle mie pene di ricerca...

    Grazie!

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da shaone
    ma il nome del linguaggio trattato me lo hai chiesto per poi darmi un aiuto o solo per capire se spostarmi?
    La seconda che hai detto... (cit. Quelo).

    Originariamente inviato da shaone
    Ho visto che sul tema OOP dai spesso chiari suggerimenti sul forum e ho pensato e sperato per un attimo che il tuo interesse al mio quesito sarebbe servito a mettere fine alle mie pene di ricerca...
    Sì, ma al momento è il tempo che mi manca... devo posticipare a più tardi, se non avrai ricevuto altre risposte.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    Up.... è così complessa la cosa? nessuno è cosiì gentile da illuminarmi??

  7. #7
    Non ci vedo nulla di male nel codice che hai scritto... al limite puoi definire una classe di tipo Categoria e usarla per memorizzare la relativa informazione, ma si tratta di una cosa piuttosto inutile.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Anche secondo me la struttura non ha nulla che non va, ovviamente in base alle informazioni fornite.

    Quello che farei è trasformare il membro di istanza Categoria per la classe Prodotto in un campo privato, invece che pubblico, esponendo il suo valore con una proprietà "read only", di sola lettura. Così come è fatta, chiunque potrebbe modificare l'oggetto Categoria a cui punta il membro nella classe Prodotto, dato che è pubblico; invece, ciò che vorrai - suppongo - è consentire modifiche alle sole proprietà di tale oggetto, correttamente istanziato nel costruttore.

    Si tratta comunque di rifiniture: se la classe la usi tu, non penso incontrerai problemi, ma puoi sempre aumentare le garanzie in proposito.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  9. #9
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    Grazie per le risposte soddisfacenti ma che mi richiamano altri quesiti legati alla oop...

    in effetti il mio obiettivo è poter caricare la classe Prodotto incluse le subclassi interne come Categoria dei valori opportuni e poi usare un metodo di una eventuale classe Database per inserire i valori nel db passando semplicemente l'oggetto (Prodotto) creato.
    per esempio:


    // Creo oggetto
    Prodotto pr = new Prodotto();
    pr.Nome = "nome prodotto";
    pr.Descrizione = "descrizione prodotto";
    pr.Categoria.ID = "id categoria";
    pr.Categoria.Descrizione = "descrizione categoria";

    // Creo oggetto Database
    Database db = new Database();
    db.InserisciProdotto(pr);

    Mi chiedevo se come principio nel rispetto della programmazione OOP è corretto.

    Grazie ancora di tutto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.