#programowanie #angular #typescript Pytanko mam, jak najlepiej według zasad clean code ogarnąć coś takiego, że dwie niespokrewnione klasy używają takich samych danych np. jakiejś tablicy obiektów z responsa http (nie mogę użyć stora). Bez sensu, żebym i tu i tu wysyłał request skoro mogę to zrobić raz i przetrzymywać dane. Utworzyć jakiś serwis czy klasę, którą obie te klasy będą rozszerzały i w niej to pobrać?
@Dominias: a nie możesz używać jakiegoś repozytorium które będzie pobierało te dane i trzymało. A obie te klasy będą sobie z niego pobierać co potrzeba?
@LubieSzaszylkiZLublina: Zapytania http powinny i tak być robić w serwisie, nie w komponencie ;)
@Dominias: Ja bym przechowywał pobrane dane w serwisie i dodatkowo udostępnił ReplaySubject, który pomógłby automatycznie odświeżać dane w innych komponentach.
na przykład:
class SomeService { private data; public replaySubject = new ReplaySubject();
public getData(returnCached = false) { if (returnCached && this.data) { return of(this.data); }
Pytanko mam, jak najlepiej według zasad clean code ogarnąć coś takiego, że dwie niespokrewnione klasy używają takich samych danych np. jakiejś tablicy obiektów z responsa http (nie mogę użyć stora). Bez sensu, żebym i tu i tu wysyłał request skoro mogę to zrobić raz i przetrzymywać dane. Utworzyć jakiś serwis czy klasę, którą obie te klasy będą rozszerzały i w niej to pobrać?
@Dominias: Ja bym przechowywał pobrane dane w serwisie i dodatkowo udostępnił ReplaySubject, który pomógłby automatycznie odświeżać dane w innych komponentach.
na przykład:
class SomeService {
private data;
public replaySubject = new ReplaySubject();
public getData(returnCached = false) {
if (returnCached && this.data) {
return of(this.data);
}
return this.httpClient.get(url)
.pipe(
tap(data => this.data = data),
tap(data => this.replaySubject.next(data),