Mam kod, w którym spadł dobry model dziedziczenia i próbuję zrozumieć, dlaczego i jak to naprawić. Zasadniczo wyobraź sobie, że masz hierarchię zoo z: class Animal class Parrot : Animal class Elephant : Animal class Cow : Animal itp. Masz swoje metody eat (), run () itp. I wszystko jest …
Zastanawiałem się nad dobrym projektowaniem klas obiektowych. W szczególności trudno mi zdecydować między tymi opcjami: metoda statyczna vs instancja metoda bez parametrów lub zwracanej wartości vs metoda z parametrami i zwracaną wartością nakładanie się i odrębna funkcjonalność metody metoda prywatna a publiczna Przykład 1: Ta implementacja korzysta z metod instancji, …
Otrzymałem dzisiaj recenzję kodu od starszego programisty z pytaniem: „A propos, jaki jest twój sprzeciw wobec wywoływania funkcji za pomocą instrukcji switch?” Czytałem już w wielu miejscach o tym, jak pompowanie argumentu za pomocą przełączania do metod wywoływania jest złym OOP, nie jest tak rozszerzalne itp. Jednak tak naprawdę nie …
Od dłuższego czasu programuję w językach proceduralnych, a moją pierwszą reakcją na problem jest rozpoczęcie dzielenia go na zadania do wykonania zamiast rozważania różnych istniejących bytów (obiektów) i ich relacji. Mam kurs uniwersytecki w zakresie OOP i rozumiem podstawy enkapsulacji, abstrakcji danych, polimorfizmu, modułowości i dziedziczenia. Przeczytałem /programming/2688910/learning-to-think-in-the-object-oriented-way i /programming/1157847/learning-object-oriented-thinking …
W obecnej formie to pytanie nie pasuje do naszego formatu pytań i odpowiedzi. Oczekujemy, że odpowiedzi poparte będą faktami, referencjami lub wiedzą fachową, ale to pytanie prawdopodobnie będzie wymagało debaty, argumentów, ankiet lub rozszerzonej dyskusji. Jeśli uważasz, że to pytanie można poprawić i ewentualnie ponownie otworzyć, odwiedź centrum pomocy w …
Jestem bardzo nowy w programowaniu i trochę zdezorientowany czytaniem \ słyszenia różnych konwencji z różnych źródeł: Czy programowanie obiektowe ma 4 lub 5 pojęć? Jako nowicjusz rozumiem, że są to 5 pojęć: Abstrakcja Dziedzictwo Kapsułkowanie Wielopostaciowość Modułowość Dlaczego więc nie znajduję bardziej „ścisłej” definicji i wydaje się, że istnieje kilka …
Istnieje wiele podobnych pytań 1 ,2 ,3 ,4 , ale nie wydaje się dokładnie tak w tym pytaniu, ani rozwiązania nie wydają się optymalne. To jest ogólne pytanie OOP, przy założeniu, że polimorfizm, leki generyczne i miksy są dostępne. Rzeczywistym używanym językiem jest OOP Javascript (Typescript), ale ten sam problem …
Pochodzę ze środowiska C ++ i wychodzę z C # w mojej obecnej pracy i właśnie czytałem wiele pytań i odpowiedzi na temat różnicy między polami publicznymi i właściwościami a wszystkimi tam iz powrotem w odmianach i inkarnacjach tego podstawowe pytanie (np. ten post SO i wszystkie powiązane powiązane pytania …
Próbuję zrozumieć, w jaki sposób zasada inwersji zależności różni się od zasady „program do interfejsu, a nie implementacja”. Rozumiem, co oznacza „Program do interfejsu, a nie implementacja”. Rozumiem również, w jaki sposób pozwala na bardziej elastyczne i łatwe w utrzymaniu projekty. Ale nie rozumiem, w jaki sposób zasada inwersji zależności …
Kontekst Używałem z hierarchią obiektów (drzewa wyrażeń) wzorca „pseudo” użytkownika (pseudo, ponieważ w nim nie stosuje podwójnej wysyłki): public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } Ten projekt był …
Mój przyjaciel powiedział mi, że najlepszą praktyką jest to, że mainmetoda zawierająca klasy powinna być nazwana Maini zawiera tylko mainmetodę. Również mainmetoda powinna analizować dane wejściowe, tworzyć inne obiekty i wywoływać inne metody. MainKlasy i mainmetody nie powinien robić niczego innego. Zasadniczo to, co mówi, że mainmetoda zawierająca klasy powinna …
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 . Krótkie pytanie Czy istnieje typowy sposób nazwania „publicznych” i „prywatnych” członków projektu OO …
Kiedy próbuję zaprojektować rozwiązanie OO, zwykle używam modelowania CRC, w którym wymieniam nazwy klas (rzeczowniki), co robią (czasowniki) i jak współpracują z innymi klasami. Ten blog ma poniżej do powiedzenia na temat tego czasownika ...This approach, which I will call “noun and verb,” is so limited I’ll dare to call …
Zasada otwartego zamknięcia (OCP) stanowi, że obiekt powinien być otwarty do rozszerzenia, ale zamknięty do modyfikacji. Wierzę, że rozumiem to i używam go w połączeniu z SRP do tworzenia klas, które robią tylko jedną rzecz. I staram się stworzyć wiele małych metod, które umożliwiają wyodrębnienie wszystkich elementów sterujących zachowania na …
Uczę się DDD i myślę o rzucaniu wyjątków w określonych sytuacjach. Rozumiem, że obiekt nie może wejść w zły stan, więc tutaj wyjątki są w porządku, ale w wielu przykładach wyjątki są zgłaszane na przykład, jeśli próbujemy dodać nowego użytkownika z istniejącą pocztą e-mail w bazie danych. public function doIt(UserData …
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.