Pytania otagowane jako object-oriented

Metodologia umożliwiająca modelowanie systemu jako zestawu obiektów, które można kontrolować i manipulować w sposób modułowy


9
Wyjaśnienie, w jaki sposób „Powiedz, nie pytaj” jest uważane za dobrego OO
Ten blog został opublikowany w Hacker News z kilkoma pozytywnymi opiniami. Pochodząc z C ++, większość tych przykładów wydaje się sprzeczna z tym, czego mnie nauczono. Tak jak w przykładzie 2: Zły: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end kontra dobry: system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature …

8
LSP vs OCP / Liskov Substitution VS Open Close
Próbuję zrozumieć SOLIDNE zasady OOP i doszedłem do wniosku, że LSP i OCP mają pewne podobieństwa (jeśli nie powiedzieć więcej). zasada otwarta / zamknięta stwierdza: „jednostki oprogramowania (klasy, moduły, funkcje itp.) powinny być otwarte na rozszerzenie, ale zamknięte na modyfikację”. LSP w prostych słowach stwierdza, że ​​dowolną instancję Foomożna zastąpić …


3
Jakie są zalety OOP opartego na prototypach w porównaniu z OOP opartym na klasie?
Kiedy po raz pierwszy zacząłem programować Javascript po tym, jak przede wszystkim miałem do czynienia z OOP w kontekście języków opartych na klasach, byłem zdezorientowany, dlaczego OOP oparte na prototypach byłoby kiedykolwiek preferowane od OOP opartego na klasach. Jakie są strukturalne zalety używania OOP opartego na prototypach, jeśli takie istnieją? …

2
Co Alan Kay miał na myśli przez „zadanie” we wczesnej historii Smalltalk?
Czytałem Wczesną historię Smalltalk i jest kilka wzmianek o „zadaniu”, które każą mi podważyć moje rozumienie jego znaczenia: Chociaż OOP pochodzi z wielu motywacji, dwie były kluczowe. Na dużą skalę należało znaleźć lepszy schemat modułów dla złożonych systemów obejmujących ukrywanie szczegółów, a na małą skalę - znaleźć bardziej elastyczną wersję …

3
Dlaczego anemiczny model domeny jest uważany za zły w C # / OOP, ale bardzo ważny w F # / FP?
W poście na blogu na F # dla zabawy i zysku napisano: W funkcjonalnym projekcie bardzo ważne jest oddzielenie zachowania od danych. Typy danych są proste i „głupie”. A następnie osobno masz wiele funkcji, które działają na te typy danych. Jest to dokładne przeciwieństwo projektowania obiektowego, w którym zachowanie i …



8
Co powinno być dozwolone w modułach pobierających i ustawiających?
Wciągnąłem interesujący internetowy spór o metody pobierające i ustawiające oraz enkapsulację. Ktoś powiedział, że wszystko, co powinni zrobić, to przypisanie (ustawiające) lub dostęp zmienny (pobierające), aby utrzymać je w czystości i zapewnić enkapsulację. Czy mam rację, że całkowicie zniweczyłoby to cel posiadania getterów i seterów, a walidacja i inna logika …

8
Czy przed OOP członkowie struktury danych byli publicznie dostępni?
Gdy struktura danych (na przykład kolejka) jest implementowana przy użyciu języka OOP, niektórzy członkowie struktury danych muszą być prywatni (na przykład liczba elementów w kolejce). Kolejka może być również zaimplementowana w języku proceduralnym przy użyciu structzestawu funkcji działających w systemie struct. Jednak w języku proceduralnym nie można uczynić członków structprywatnymi. …

3
Jaka jest różnica między podklasą a podtypem?
Najwyżej oceniana odpowiedź na to pytanie dotyczące zasady substytucji Liskowa stara się rozróżnić pojęcia podtyp i podklasa . Wskazuje również, że niektóre języki łączą oba języki, podczas gdy inne nie. W przypadku języków obiektowych, które znam najbardziej (Python, C ++), „typ” i „klasa” są pojęciami synonimicznymi. Jeśli chodzi o C …

11
Czy zmienne błędu są anty-wzorcem czy dobrym projektem?
Aby obsłużyć kilka możliwych błędów, które nie powinny powstrzymywać wykonywania, mam errorzmienną, którą klienci mogą sprawdzać i używać do zgłaszania wyjątków. Czy to jest anty-wzór? Czy istnieje lepszy sposób, aby sobie z tym poradzić? Na przykład w akcji możesz zobaczyć API mysqli PHP . Załóżmy, że problemy z widocznością (akcesory, …


1
Dlaczego programiści używają `Acme` jako nazwy pakietu, przestrzeni nazw lub katalogu [zamknięte]
To może, ale nie musi być głupie pytanie, ale naprawdę chciałbym poznać odpowiedź na coś, co mnie niepokoi od dłuższego czasu. Dość często widzę przykłady / konwencje programowania, w których programiści utworzyli katalog, w którym acmemożna umieścić różne rzeczy. Co Acmeznaczy Dlaczego Acme, a nie Emca czy inny? Czy Acme …

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.