Rozumiem intencję zasady otwartego zamknięcia. Ma to na celu zmniejszenie ryzyka zepsucia czegoś, co już działa, podczas modyfikowania go, poprzez nakazanie próby rozszerzenia bez modyfikacji. Miałem jednak pewne problemy ze zrozumieniem, w jaki sposób ta zasada jest stosowana w praktyce. W moim rozumieniu istnieją dwa sposoby zastosowania tego. Przed i …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 4 lata temu . Ostatnio brałem udział w kilku wywiadach i firmy poprosiły mnie o więcej niż …
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(); …
Istnieje klasa LinkedList z funkcjami takimi jak add_first (), add_last (), add_after (), remove_first (), remove_last () i remove () Teraz istnieje stos klas, który zapewnia funkcje takie jak push (), pop (), peek () lub top (), a do implementacji tych metod rozszerza metody klasy LinkedList. Czy jest to …
Zaczynam dopiero eksplorować SOLID i nie jestem pewien, czy czytanie z plików i pisanie do plików to ta sama odpowiedzialność. Celem jest ten sam typ pliku; Chcę czytać i pisać .pdf w mojej aplikacji. Aplikacja znajduje się w Pythonie, jeśli to robi jakąkolwiek różnicę.
W odpowiedziach na to pytanie, ogólny konsensus był taki, że metody statyczne nie mają być nadpisywane (a zatem funkcje statyczne w języku C # nie mogą być wirtualne ani abstrakcyjne). Jest to jednak nie tylko przypadek w języku C #; Java również tego zabrania, a C ++ też to nie …
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 …
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 …
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 …
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 …
Jako przykład powiedz, że piszesz aplikację w Javie . Twoja aplikacja komunikuje się z serwerem API napisanym w języku Python . Serwer Python komunikuje się z bazą danych SQL . Masz także stronę internetową dla swojej aplikacji napisaną w JavaScript . Dzięki 4 różnym językom łatwo jest powtarzać zasadniczo te …
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 …
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 …
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 …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.