| 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. |