Seria pytań uczestników, które pojawiły się podczas szkolenia Wzorce projektowe w C# realizowanego w dniach 14-16.03.2022 r.
Proponuję zastosować cache z użyciem bazy danych REDIS i wzorca projektowego Proxy.
Przykład implementacji:https://github.com/sulmar/vavatech-ngk-design-patterns/blob/master/src/DesignPatterns/ProxyPattern/RedisCacheImageRepository.cs
Przykład użycia:
https://github.com/sulmar/vavatech-ngk-design-patterns/blob/master/src/DesignPatterns/ProxyPattern.UnitTests/RedisCacheImageRepositoryTests.cs
Proponuję zastosować wzorzec projektowy Obserwator. Najlepiej oprzeć się na 2 podstawowych interfejsach, które znajdują się w przestrzeni System:
IObserver i IObservable.
Interfejs IObservable reprezentuje obserwowane wartości, natomiast IObserver to interfejs "nasłuchujący" te wartości. Na podstawie tych interfejsów można napisać własne implementacje lub skorzystać ze świetnej biblioteki Reactive Extensions:
https://reactivex.io
Rekomenduję zastosowanie wzorca projektowego Memento.
Memento umożliwia tworzenie migawek stanu danego obiektu (snapshot). Standardowo dotyczy to właściwości obiektów, ale w tym przypadku możemy potraktować załadowany plik jako stan.
Przykład implementacji:https://github.com/sulmar/vavatech-ngk-design-patterns/blob/master/src/DesignPatterns/MementoPattern/Models/Configuration.cs