none
domanda architetturale su dipendenze tra oggetti RRS feed

  • Domanda

  • Ciao a tutti,

    dovendo costruire un'applicazione con UI, BL e DAL sono a scontrarmi con un problema:

    nel dal ho oggetti diversi, mettiamo PRODOTTI e CATEGORIE, il problema è capire come gestire al meglio che questi oggetti sono correlati, nel senso che l'oggetto Prodotto avrà una proprietà che è CATEGORIEASSOCIATE, probabilmente una collection di CATEGORIE, ma questo comporta la dipendenza reciproca degli oggetti. qualcuno sa darmi qualche dritta veloce, e magari un'indicazione su un buon libro recente per formarmi meglio sulll'argomento?

    grazie!


    logan
    mercoledì 4 maggio 2011 21:05

Risposte

  • Se ho ben capito vorresti implementare la classe Prodotto in modo tale che abbia una proprità di tipo List(Of Categorie) che riempirai con un metodo del tipo GetCategoriesByProductId che sarà implementato nel tuo DAL (data access layer)

    Cosi è "formalmente" corretto.

    Ciao


    Luca Congiu (congiuluc)
    • Contrassegnato come risposta logan1987 giovedì 5 maggio 2011 07:24
    mercoledì 4 maggio 2011 22:29
    Moderatore

Tutte le risposte

  • Perchè parli di dipendenza reciproca?
    Cmq PRODOTTO avrà la necessità di un (ipotizziamo)
    public IEnumerable<Categorie> Categorie { get; }
     
    O, meglio ancora, se quello che ti serve nella l'UI è vedere a che
    Categorie appartiene il Prodotto potrebbe bastarti un:
    public IEnumerable<string> Categorie { get; }
     
     

    Se il post ti è tornato utile "suggerisci come risposta"
    Salvatore Di Fazio
    Bitvector
    Rebitting
    Twitter: @Salvodif
    • Proposto come risposta Gaetanu giovedì 5 maggio 2011 08:20
    mercoledì 4 maggio 2011 21:35
  • Prova a dare uno sguardo a questa guida:

    Microsoft Application Architecture Guide, 2nd Edition

    In particolare il capitolo 5 parla delle applicazioni multi layer

    http://msdn.microsoft.com/en-us/library/ee658109.aspx

    Ciao


    Luca Congiu (congiuluc)
    mercoledì 4 maggio 2011 21:37
    Moderatore
  • grazie della risposta!

    dico questo perché per ottenere come proprietà di prodotto la lista delle sue categorie devo, nel ProdottoDAL chiamare il metodo presente nel CategorieDAL per recuperare gli oggetti di tipo categoria :)


    logan
    mercoledì 4 maggio 2011 21:57
  • Se ho ben capito vorresti implementare la classe Prodotto in modo tale che abbia una proprità di tipo List(Of Categorie) che riempirai con un metodo del tipo GetCategoriesByProductId che sarà implementato nel tuo DAL (data access layer)

    Cosi è "formalmente" corretto.

    Ciao


    Luca Congiu (congiuluc)
    • Contrassegnato come risposta logan1987 giovedì 5 maggio 2011 07:24
    mercoledì 4 maggio 2011 22:29
    Moderatore
  • perfetto!

    quindi formalmente è consentito che diversi blocchi del dal si richiamino a vicenda!
    credevo di non capire il metodo corretto ;)

    grazie ancora! 


    logan
    giovedì 5 maggio 2011 07:24
  • Concettualmente è corretto... bisogna capire se hai la necessità di
    portarti dietro istanze di classi che magari non utilizzerai, rispetto
    solamente al nome della categoria (sto parlando del caso specifico che
    hai portato)
     

    Se il post ti è tornato utile "suggerisci come risposta"
    Salvatore Di Fazio
    Bitvector
    Rebitting
    Twitter: @Salvodif
    giovedì 5 maggio 2011 08:15
  • approfitto ancora della tua cortesia,

    hai qualche libro (possibilmente in italiano) da consigliarmi che parli della programmazione ad oggetti intesa come "organizzazione del codice", utilizzo corretto della oop, quando usare un approccio piuttosto di un altro, etc?

    grazie!


    logan
    giovedì 5 maggio 2011 08:30
  • Un mio caro amico ha scritto questo libro:

    http://www.amazon.com/Microsoft%C2%AE-NET-Architecting-Applications-Pro-Developer/dp/073562609X

    forse farebbe al caso tuo.

    Sicuramente ti consiglio anche di leggere dei libri/risorse in rete, su design patterns.


    Se il post ti è tornato utile "suggerisci come risposta"
    Salvatore Di Fazio
    Bitvector
    Rebitting
    Twitter: @Salvodif
    giovedì 5 maggio 2011 09:49
  • Ciao logan1987,

    You wrote on 05/05/2011 :

    perfetto!

    quindi formalmente è consentito che diversi blocchi del dal si richiamino a vicenda! credevo di non capire il metodo corretto ;)

    corretto è corretto il problema è che mantenere una struttura del genere è un bagno di sangue all'aumentare della complessità del modello e soprattutto al variare dei casi d'uso.

    grazie ancora! 

    .m


    Mauro Servienti
    {C67C0157-5D98-4733-A75E-93CAEE4BADC8}
    Microsoft MVP - Visual C# / MCTS
    http://mvp.support.microsoft.com
    blog @ http://milestone.topics.it
    whynot [ at ] topics [ dot ] it
    lunedì 9 maggio 2011 07:32