android10 / android10/Android-CleanArchitecture
Is Content Provider an implementation of Repository Pattern?
- 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