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 …
Czy klasa powinna wiedzieć o swoich podklasach? Czy klasa powinna na przykład zrobić coś specyficznego dla danej podklasy? Mój instynkt podpowiada mi, że jest to zły projekt, wydaje się być pewnego rodzaju anty-wzorem.
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ć, …
Jako programista C ++ jestem przyzwyczajony do plików nagłówkowych C ++ i uważam, że korzystne jest posiadanie pewnego rodzaju wymuszonej „dokumentacji” w kodzie. Zwykle mam zły czas, kiedy muszę czytać kod C # z tego powodu: nie mam takiej mentalnej mapy klasy, z którą pracuję. Załóżmy, że jako inżynier oprogramowania …
Aby wyjaśnić, pytam o to public class A{ private/*or public*/ B b; } vs. public class A{ private/*or public*/ class B{ .... } } Zdecydowanie mogę wymyślić kilka powodów, aby użyć jednego lub drugiego, ale tak naprawdę chciałbym zobaczyć przekonujące przykłady, które pokazują, że zalety i wady są nie tylko …
Szczególnie w Javie, ale prawdopodobnie także w innych językach: kiedy przydatne byłyby dwa odniesienia do tego samego obiektu? Przykład: Dog a = new Dog(); Dob b = a; Czy istnieje sytuacja, w której byłoby to przydatne? Dlaczego miałoby to być preferowanym rozwiązaniem, ajeśli chcesz korzystać z obiektu reprezentowanego przez a?
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 …
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)); // …
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 …
Zgodnie z refaktoryzacją do wzorów : Gdy klasa próbuje zrobić zbyt wiele, często pojawia się jako zbyt wiele zmiennych instancji. Gdy klasa ma zbyt wiele zmiennych instancji, zduplikowany kod nie może być daleko w tyle. W jaki sposób posiadanie zbyt wielu zmiennych instancji prowadzi do duplikowania kodu?
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 …
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ą …
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 …
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 …
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.