Converti in programmazione orientata agli oggetti

0

Attualmente sto lavorando a un progetto che è abbastanza piccolo per il momento. C'è stata una recente modifica per implementare l'architettura a 3 livelli, in modo tale che il codice sia ora suddiviso in modo appropriato per l'accesso ai dati, la logica aziendale e i livelli dell'interfaccia utente. Tuttavia, non vi è alcun uso di oggetti al di fuori della loro creazione per chiamare in definitiva un metodo di accesso ai dati.

A un livello molto semplice, praticamente tutto ciò che facciamo è:

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        Dim dt As New DataTable
        dt = objBl.GetSomething
        'Assign to Grid
        'Format Grid
    End Sub

Voglio implementare qualcosa di più simile a

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    Dim lstSomeObject As New List(Of SomeObject)
    'Populate list of objects by calls to business layer
    DataGridView1.DataSource = lstSomeObject
    'Format Grid
End Sub

In fin dei conti, non molto diverso. Ma invece di dover passare trenta variabili per ottenere una tabella di dati risultante che viene utilizzata una volta, potremmo creare un oggetto (e liste di oggetti) e farli passare invece. Ho un paio d'anni di esperienza lavorativa in un tale ambiente, ma nessuna esperienza nella conversione in un tale ambiente. Francamente, non riesco a capire come farlo.

Creo un progetto entità separato per questo, e quindi fa riferimento a tutto ciò? O costringo i nostri oggetti attuali a memorizzare sia le proprietà che i metodi per ogni tipo di oggetto (in questo modo mi sembra controintuitivo)? O qualcos'altro interamente? Ho cercato per la maggior parte del weekend e non ho trovato nulla di troppo utile.

    
posta Dave Johnson 02.03.2014 - 20:05
fonte

1 risposta

2

Sembra che tu stia descrivendo un oggetto di trasferimento dati o più comunemente noto come DTO.

Il più grande vantaggio di un DTO è proprio come hai detto tu - evitando di dover passare circa 30 variabili.

L'utilizzo di DTO è un buon primo passo per passare a un'architettura <-a href="http://en.wikipedia.org/wiki/N-tier"> a più livelli che suona come potresti sta cercando di raggiungere. Un'architettura a più livelli si avvale di diversi principi OOP come l'incapsulamento al fine di rendere più gestibile l'applicazione complessiva.

Do I create a separate entities project for this, and then does everything reference this?

Sì, è generalmente il modo più semplice e riduce il codice duplicato. I tuoi livelli che accedono al DTO potrebbero dover verificare un valore valido, ma questo è il peggiore.

    
risposta data 09.03.2014 - 17:19
fonte

Leggi altre domande sui tag