Pytania otagowane jako object-oriented-design

Projektowanie obiektowe to proces planowania systemu interakcji obiektów w celu rozwiązania problemu z oprogramowaniem.



2
Projekt: metoda obiektowa a metoda osobnej klasy, która przyjmuje parametr jako parametr?
Na przykład, czy lepiej zrobić: Pdf pdf = new Pdf(); pdf.Print(); lub: Pdf pdf = new Pdf(); PdfPrinter printer = new PdfPrinter(); printer.Print(pdf); Inny przykład: Country m = new Country("Mexico"); double ratio = m.GetDebtToGDPRatio(); lub: Country m = new Country("Mexico"); Country us = new Country("US"); DebtStatistics ds = new DebtStatistics(); …




1
Niezmienniki czasu życia obiektu a semantyka ruchu
Kiedy nauczyłem się C ++ dawno temu, mocno podkreślono, że część C ++ polega na tym, że podobnie jak pętle mają „niezmienniki pętli”, klasy mają również niezmienniki związane z czasem życia obiektu - rzeczy, które powinny być prawdziwe tak długo, jak obiekt żyje. Rzeczy, które powinny zostać ustalone przez konstruktorów …

4
Dobre strategie wdrażania dla enkapsulacji współdzielonych danych w potoku oprogramowania
Pracuję nad faktoringiem niektórych aspektów istniejącej usługi internetowej. Interfejsy API usług są implementowane poprzez rodzaj „potoku przetwarzania”, w którym są zadania wykonywane sekwencyjnie. Nic dziwnego, że późniejsze zadania mogą wymagać informacji obliczonych na podstawie wcześniejszych zadań, a obecnie sposób ten jest wykonywany przez dodanie pól do klasy „stan potoku”. Myślałem …

7
Projekt: Oddzwanianie do klasy nadrzędnej
Podczas modelowania obiektu za pomocą dzieci często dołącza się dzieci za pomocą kompozycji jako członka klasy nadrzędnej. Czasami jednak dzieci muszą powiedzieć rodzicowi coś, muszą wywołać funkcję rodzica. Jak można to osiągnąć za pomocą C ++? Niektóre opcje to: Ustaw klasę nadrzędną na globalną, aby obiekty potomne mogły wywoływać funkcje …

2
Czy w usłudze DDD usługa domenowa jest w zasadzie tylko wzorem fasady i / lub mediatora?
W projektowaniu opartym na domenach warstwa domeny może mieć kilka (tradycyjnych) usług. Na przykład w domenie użytkownika możemy mieć: UserFactory, który buduje obiekty użytkownika na różne sposoby UserRepository, które jest odpowiedzialne za interakcję z usługami przetrwania w warstwie infrastruktury Czy usługa użytkownika w warstwie domen jest po prostu mediatorem i …


2
Jak faktycznie dowiedzieć się, co należy zrobić w projektowaniu obiektowym?
Najpierw zastrzeżenie: Naprawdę nie wiem, czy to pytanie pasuje do tej witryny, ale nadal uważam to za istotne pytanie nie tylko dla mnie, ale dla innych osób, które są początkujące. Jeśli pytanie można poprawić, aby pasowało tutaj, proszę zaznaczyć int komentarze. Jeśli to nie pasuje, daj mi również znać, a …

5
Jak uniknąć naruszenia SRP w klasie w celu zarządzania buforowaniem?
Uwaga: Próbka kodu jest napisana w języku c #, ale to nie powinno mieć znaczenia. Umieściłem c # jako tag, ponieważ nie mogę znaleźć bardziej odpowiedniego. Chodzi o strukturę kodu. Czytam Clean Code i staram się zostać lepszym programistą. Często staram się przestrzegać zasady pojedynczej odpowiedzialności (klasy i funkcje powinny …

1
Zasada otwartego zamknięcia (OCP) a zasada inwersji zależności (DIP)
Próbowałem zrozumieć różnicę między otwartą zasadą zamkniętą (OCP) a zasadą odwrócenia zależności (DIP). Na podstawie badań, które przeprowadziłem do tej pory w Internecie, doszedłem do wniosku, że „DIP jest jedną z opcji, dzięki której możemy osiągnąć OCP”. Mam rację? Czy możesz podać mi przykład, który nie podąża za DIP, ale …

4
Przełączanie vs polimorfizm w przypadku modelu i widoku
Nie mogę znaleźć lepszego rozwiązania mojego problemu. Mam kontroler widoku, który przedstawia listę elementów. Te elementy to modele, które mogą być instancjami B, C, D itp. I dziedziczyć po A. W tym kontrolerze widoku każdy element powinien przejść do innego ekranu aplikacji i przekazać niektóre dane, gdy użytkownik wybierze jeden …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.