DTO- Data Transfer Object

DTO(Data Transfer Object)

Adından anlaşılacağı üzere bu objeler katmanlar, birimler arasında sadece veri aktarımı için kullanılırlar.

  1. Depolama dışında herhangi bir yükümlülükleri yoktur.

  2. Setter/getter kullanmına gerek yoktur. Tüm veriler public olarak tutulabilir.

  3. Business odaklı oluşturulması gerekir.

  4. Entitnin tüm verilerini içermesine gerek yoktur.

  5. Entitden farklı verilerde içerebilir. ama o kısımlarde atomapper kullanımda farklılıklar olacaktır.

Veri tablosundan veriyi aldınız ve ilgili modelle maplediniz. İlgili modelin veri tablosundan aldığı bilgiyle maplenebilmesi için veri tablosu kolonlarıyla, modelin propertyleri isim ve tip olarak eşleşmeli. Ancak siz bu veriyi modeldeki gibi direkt olarak programınızda kullanmak istemiyor olabilirsiniz. Örneğin veri tabanından çekilen veride isim, soyisim ayrı propertylerdedir. Sizin tek property olarak kullanmanız gerekir ya da iki farklı veri tablosundan maplediğiniz iki modelden gelen propertyleri harmanlayarak bir model oluşturmanız gerekebilir. İşte veri tabanından mapplenen modelleri uygulama içerisinde kullanacağınız modelle aktardığınızda bu modeller dto olarak adlandırılır.

Örnek DTO;

Burada Domain layerda, Mention varlığının propertileri oluşturulmuştur. Görüldüğü gibi ihtiyaç duyulan tüm propertyler tanımlanmıştır. Şimdide business mantığı ile oluşturulan bir AddMentionDTO görelim;

Apllication katmanındada Mentionı eklemek için AddMention isimli DTO oluşturulmuştur. Sonuç olarak düşünüldüğünde Mention ekleme işinde gerekli olan propertylerin kullanılması yeterli olacaktır. Böylece DB deki tüm propertyler ve içlerinde tanımlı olan veriler UI kısmına gidip gelemeyecek hemde DB doğrudan UI kısmının erişime kapatılacaktır.

Last updated