Pytania otagowane jako object-oriented-design

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

10
Czy możemy żyć bez konstruktorów?
Powiedzmy, że z jakiegoś powodu wszystkie obiekty są tworzone w ten sposób $ obj = CLASS :: getInstance (). Następnie wstrzykujemy zależności za pomocą ustawiaczy i przeprowadzamy inicjalizację początkową za pomocą $ obj-> initInstance (); Czy są jakieś realne problemy lub sytuacje, których nie można rozwiązać, jeśli w ogóle nie …


12
Projektowanie obiektowe
Załóżmy, że masz: +--------+ +------+ | Animal | | Food | +-+------+ +----+-+ ^ ^ | | | | +------+ +-------+ | Deer | | Grass | +------+ +-------+ Deerdziedziczy Animali Grassdziedziczy po Food. Jak na razie dobrze. Animalprzedmioty mogą jeść Foodprzedmioty. Teraz pomieszajmy to trochę. Pozwala dodać, Lionktóry dziedziczy …

6
Czy obiekt powinien znać swój identyfikator?
obj.idwydaje się dość powszechny i ​​również mieści się w zakresie czegoś, co obiekt może wiedzieć o sobie. Zastanawiam się, dlaczego mój obiekt powinien znać swój identyfikator? Wydaje się, że nie ma powodu, aby to mieć? Jednym z głównych powodów jego istnienia jest jej odzyskanie, więc moje repozytoria muszą to wiedzieć, …




3
Najlepszy projekt dla formularzy Windows, które będą miały wspólną funkcjonalność
W przeszłości korzystałem z dziedziczenia, aby umożliwić rozszerzenie formularzy Windows w mojej aplikacji. Gdyby wszystkie moje formularze miały wspólne elementy sterujące, kompozycję i funkcje, utworzyłbym formularz podstawowy implementujący wspólne elementy sterujące i funkcje, a następnie pozwalałem innym elementom sterującym na dziedziczenie z tego formularza podstawowego. Jednak natrafiłem na kilka problemów …

3
Nigdy nie udostępniaj publicznie elementów wirtualnych / abstrakcyjnych - naprawdę?
W 2000 roku mój kolega powiedział mi, że to anty-wzorzec, aby publiczne metody były wirtualne lub abstrakcyjne. Na przykład uważał taką klasę za niezbyt dobrze zaprojektowaną: public abstract class PublicAbstractOrVirtual { public abstract void Method1(string argument); public virtual void Method2(string argument) { if (argument == null) throw new ArgumentNullException(nameof(argument)); // …

9
Czy metody init () pachną kodem?
Czy jest jakiś cel deklarowania init()metody dla typu? Nie pytam, czy powinniśmy preferować init()konstruktor, czy jak uniknąć deklarowaniainit() . Pytam, czy istnieje jakikolwiek uzasadnienie deklaracji init()metody (zobaczenie, jak często jest stosowana) lub czy jest to zapach kodu i należy tego unikać. Ten init()idiom jest dość powszechny, ale jeszcze nie widziałem …


4
Jak stworzyć lepszy kod OO w aplikacji opartej na relacyjnej bazie danych, w której baza danych jest źle zaprojektowana
Piszę aplikację internetową Java, która składa się głównie z kilku podobnych stron, na których każda strona ma kilka tabel i filtr, który dotyczy tych tabel. Dane w tych tabelach pochodzą z bazy danych SQL. Używam myBatis jako ORM, co może nie być najlepszym wyborem w moim przypadku, ponieważ baza danych …

7
Najlepsze praktyki OO dla programów C [zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się na jednym problemie, edytując ten post . Zamknięte 4 lata temu . „Jeśli naprawdę chcesz cukru OO - idź użyć C ++” - to była natychmiastowa odpowiedź, którą …

1
Dlaczego (/ czy) Bertrand Meyer uważa, że ​​podklasa jest jedynym sposobem na rozszerzenie „zamkniętego” modułu?
W Meyer Object-Oriented Software Construction (1988) definiuje zasadę otwartego / zamkniętego w następujący sposób: Mówi się, że moduł jest otwarty, jeśli jest nadal dostępny do rozszerzenia. Na przykład powinna istnieć możliwość dodawania pól do zawartych w nim struktur danych lub nowych elementów do zestawu funkcji, które wykonuje. Moduł zostanie uznany …

7
Czy powinienem tworzyć interfejsy dla obiektów transferu danych?
Czy to dobry pomysł, czy zły pomysł na stworzenie interfejsu dla obiektów do przesyłania danych? Zakładając, że obiekt jest zwykle zmienny. Chociaż mój przykład jest w Javie, powinien mieć zastosowanie do każdego innego języka, który ma podobne pojęcia. interface DataTransferObject { String getName(); void setName(String name); } class RealDataTransferObject implements …

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.