Wpis z mikrobloga

Robię dla siebie bibliotekę do obsługi api wykopu w C# i trochę utknąłem przy projektowaniu. Chcę żeby każda metoda w api miała swój odpowiednik w bibliotece i nie chcę ładować wszystkich metod do jednej klasy. Więc tworzę klasę Api, która ma w sobie tylko pola obiektów Profile, User, Entries i tak dalej, gdzie są metody api. Więc jeśli użytkownik chce się zalogować to tworzy nowy obiekt Api, a następnie woła Api.User.Login().

Problem w tym, że w klasie api muszę zainicjalizować wszystkie obiekty, nawet te których się nie będzie używać. To duży bad smell? Chciałem użyć wzorca fabryka, ale te klasy nie mają wspólnego interfejsu. Jest jakiś inny wzorzec który rozwiązuje ten problem?

Istnieje jakiś mądrzejszy pomysł na przechowywanie zmiennych w tych klasach? Każdy obiekt musi mieć dostęp do sekretu i klucza aplikacji. Myślę żeby stworzyć strukturę z tymi zmiennymi i po prostu przekazywać ją jako parametr w konstruktorze. Wtedy każdy obiekt api będzie miał kopię tej struktury u siebie. Jest lepszy sposób na to?

#naukaprogramowania #csharp #dotnet
  • 12
@binerek: Robisz to na jakimś githubie? Chętnie pomogę i się "pobawię" przy okazji. Sam robiłem jakieś podejście, ale utknąłem gdzieś i już nie miałem zapału lecieć dalej :P
@drajvver: Nie za mało obiektowe podejście? :D

@meetom: Nie wrzucałem na gita, bo nie mam pomysłu na nazwę. Ale nie ma problemu, wrzucę na publiczne repo, tylko że w tej chwili to 4 klasy na krzyż :D No i piszę w .net core, bo tak ( ͡° ͜ʖ ͡°)
@binerek: Nie jestem pewien, czy w .net core jest odpowiednik app.config jak w normalnym (chyba jest app.json?) tam można trzymać ustawienia, czyli klucze itp, a potem odwoływać się do nich jakoś w aplikacji. To już może bardziej obiektowe :)