1 | | The QueryClient uses singleton in combination with instance methods to perform service calls. The AdministrationClient uses a combination of singleton pattern and static methods to perform service calls. |
2 | | |
3 | | To me it seems that the client provides the following functionality: |
4 | | 1. Caching some data obtained from the remote service (in the format in that it is obtained from the service) - implemented in form of a Refresh() method on a singleton instance and properties for the data. |
5 | | 1. Making calls to the remote service to receive further data (that is not cached) - implemented in form of static or instance methods. |
6 | | |
7 | | The design may be improved if these cases are separated in two classes. |