Dalam 'SOLID' the 'I' adalah singkatan dari Segregation Interface. Seluruh gagasan prinsip ini adalah untuk membagi antarmuka besar menjadi lebih kecil, lebih modular. Dalam layanan MVC biasanya akan memiliki antarmuka yang akan mengandalkan pengontrol. Anda tidak ingin pengendali Anda tahu tentang implementasi nyata dari layanan itu. Oleh karena itu, banyak layanan dengan satu atau dua metode adalah hal yang baik untuk dimiliki.
Layanan biasanya mengembalikan DTO dalam aplikasi besar atau model domain secara langsung dalam aplikasi yang lebih kecil. DTO biasanya berarti lebih banyak pekerjaan, tetapi pemisahan keprihatinan yang lebih baik. Aliran khas adalah:
- Layanan panggilan pengontrol
- Layanan mengembalikan objek (baik itu DTO, model domain atau yang lainnya)
- Pengontrol memetakan DTO / model domain ke model tampilan
Pemetaan dapat dilakukan secara manual, tetapi sebagian besar pengembang lebih suka menggunakan kerangka pemetaan otomatis seperti Automapper karena kami tidak suka menulis kode pipa ledeng dan kami bisa sangat malas :-)
http://en.wikipedia.org/wiki/Interface_segregation_principle
https://github.com/AutoMapper/AutoMapper
Salah satu dari banyak diskusi tentang stackoverflow mengenai penggunaan DTO dan model domain: /programming/2680071/dto-or-domain-model-object-in-the-view-layer