android10 / android10/Android-CleanArchitecture

Is Content Provider an implementation of Repository Pattern?

Aperta
#229 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
15.5k
Fork
3.3k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

This is the same question I have asked at [Stack Overflow](http://stackoverflow.com/questions/43258773/is-content-provider-an-implementation-of-repository-pattern).

[Repository Pattern][1] is defined by [Hieatt and Rob Mee][2] as design pattern that _mediates between the domain and data mapping layers using a collection-like interface for accessing domain objects_.

[![MSDN Repository Pattern][3]][3]

Basically it abstracts one or more I/O devices (cloud, disk, data base, etc) into a common collection-like interface where you can [_read, write, seek and delete data_][4].

However, as pointed out by professor [Douglas Schmidt][5] at [Coursera course][6], content provider [_manages and mediates access to a central repository of data to one or more applications_][7]

[![Content Provider][8]][8]

In the book [Programming Android][9], content providers are used [as a Facade for a RESTful Web Service][10]. This approach was first presented by [Virgil Dobjanschi during Google I/O 2010][11].

Thus, instead of using content providers to [access the local SQLite database][12], why not using it as the repository pattern itself?

[![enter image description here][13]][13]

[1]: https://msdn.microsoft.com/en-us/library/ff649690.aspx
[2]: https://martinfowler.com/eaaCatalog/repository.html
[3]: https://i.stack.imgur.com/CMJFn.png
[4]: http://blog.cleancoder.com/uncle-bob/2016/01/04/ALittleArchitecture.html
[5]: https://www.youtube.com/watch?v=b3m9UIeSpBY&t=246s
[6]: http://www.dre.vanderbilt.edu/~schmidt/Coursera/
[7]: https://developer.android.com/guide/topics/providers/content-provider-basics.html
[8]: https://i.stack.imgur.com/9ELkt.png
[9]: https://www.amazon.com/Programming-Android-Generation-Mobile-Devices/dp/1449316646/ref=sr_1_1?s=books&ie=UTF8&qid=1491490409&sr=1-1&keywords=programming%20android
[10]: https://www.safaribooksonline.com/library/view/programming-android-2nd/9781449332921/ch13.html
[11]: https://www.youtube.com/watch?v=xHXn3Kg2IQE
[12]: https://github.com/googlesamples/android-architecture/tree/todo-mvp-contentproviders/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source
[13]: https://i.stack.imgur.com/H21Oc.png

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia dal percorso dati/sorgente collegato di Android Architecture todo-mvp-contentproviders e dai riferimenti citati a Content Provider e Repository Pattern. Determina se questa issue richiede una decisione architetturale o una modifica alla documentazione; il lavoro sarà completato quando saranno disponibili una conclusione documentata e specifica del progetto e ogni esempio concordato.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
android, java
Ambito
mobile
Tipo di issue
Documentazione
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
20/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.