Mam więc fabrykę, która tworzy obiekty różnych klas. Wszystkie możliwe klasy pochodzą od abstrakcyjnego przodka. Fabryka ma plik konfiguracyjny (składnia JSON) i decyduje, którą klasę utworzyć, w zależności od konfiguracji użytkownika. Aby to osiągnąć, fabryka używa boost :: property_tree do parsowania JSON. Przechodzi przez ptree i decyduje, który konkretny obiekt …
Java jest zorientowana obiektowo, ale dlaczego musimy utworzyć obiekt z klasy skanera, aby uzyskać dane wejściowe? Czy next()na przykład metody nie mogą być po prostu statyczne? C wygląda mi na prostsze, jak tylko używasz scanf(), gets()lub fgets(). Jestem pewien, że istnieje powód dla programistów Java, aby utworzyć klasę Scanner, ale …
Klasa Subjest podklasą klasy Sup. Co to znaczy praktycznie? Lub innymi słowy, jakie jest praktyczne znaczenie „dziedzictwa”? Opcja 1: Kod z Sup jest praktycznie kopiowany do Sub. (jak w „kopiuj-wklej”, ale bez skopiowanego kodu widocznego wizualnie w podklasie). Przykład: methodA()jest metodą pierwotnie w Sup. Sub rozszerza Sup, więc methodA()jest (praktycznie) …
Obecnie uczę się o wzorach projektowych. Myślę, że większość ludzi zgodzi się, że te wzorce są świetnymi narzędziami, ale powinny być stosowane z umiarem, a nie jako odpowiedź na wszystko. Nadmierne ich użycie nadmiernie skomplikowałoby aplikację, przynosząc niewielkie korzyści. Wzory powinny być stosowane tylko tam, gdzie mogą być najlepszym rozwiązaniem …
Mój kolega wymyślił ogólną zasadę wyboru między tworzeniem klasy podstawowej a interfejsem. On mówi: Wyobraź sobie każdą nową metodę, którą zamierzasz wdrożyć. Rozważ to dla każdego z nich: czy ta metoda zostanie zaimplementowana przez więcej niż jedną klasę w dokładnie tej formie, bez żadnych zmian? Jeśli odpowiedź brzmi „tak”, utwórz …
Biorę lekcje języka C ++ w mojej szkole. Odkąd programowałem w Ruby, znam pewne rzeczy związane z OOP. Ale w C ++ są funkcje składowe, zmienne składowe i funkcje statyczne. W Ruby mamy metody instancji, zmienne instancji i zmienne klas. I jest więcej ... Jest jakiś powód, dla którego są …
Jaka jest różnica między przeciążeniem metody a nadpisaniem jej w Javie? Czy istnieje różnica w podpisie metody, specyfikatorze dostępu, typie zwrotu itp.?
Ogólnie dobrze jest unikać słów takich jak „uchwyt” lub „proces” jako część rutynowych nazw i nazw klas, chyba że mamy do czynienia z (np.) Uchwytami plików lub (np.) Procesami unixowymi. Jednak klasy abstrakcyjne często nie wiedzą, co zamierzają z czymś zrobić, poza, powiedzmy, przetworzeniem. W mojej obecnej sytuacji mam „EmailProcessor”, …
Mam wartość, której potrzebuje wiele obiektów. Na przykład aplikacja finansowa z różnymi inwestycjami jako przedmiotami i większość z nich potrzebuje bieżącej stopy procentowej. Miałem nadzieję, że moje otoczenie finansowe zostanie zamknięte jako przedmiot, a stopa procentowa jako własność. Ale obiekty rodzeństwa, które potrzebują tej wartości, nie mogą do niej dotrzeć. …
Przez większość czasu, gdy piszę kod, który obsługuje odpowiedź na określone wywołanie funkcji, otrzymuję następującą strukturę kodu: przykład: jest to funkcja, która będzie obsługiwać uwierzytelnianie w systemie logowania class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send mail to …
W moich konstruktorach mam dużo takiego kodu: - function __construct($params) { $this->property = isset($params['property']) ? $params['property'] : default_val; } Czy lepiej to zrobić, niż określić wartość domyślną w definicji właściwości? tj. public $property = default_val? Czasami istnieje logika dla wartości domyślnej, a niektóre wartości domyślne są pobierane z innych właściwości, …
Załóżmy, że pracuję na istniejącym, dość dużym systemie. Mam obiekt myObjectklasy MyClass(dla przykładu załóżmy, że pracuję w Javie). myObjectto kompozycja zawierająca Collection, powiedzmy, a Listi inne przedmioty, które (myślę) są nieistotne. Zawiera metody delegowania, które służą tylko do wywołania metod, z których Listsię składa, w celu zapewnienia, Listże nie zostały …
Rozważ te dwa przykłady: Przekazywanie obiektu do konstruktora class ExampleA { private $config; public function __construct($config) { $this->config = $config; } } $config = new Config; $exampleA = new ExampleA($config); Tworzenie instancji klasy class ExampleB { private $config; public function __construct() { $this->config = new Config; } } $exampleA = …
Rozwijam szereg filtrów pocztowych dla witryny Wordpress i zbudowałem pierwsze 4 z jedną klasą. Ostatnie dwa są wystarczająco różne, aby dzielić tylko jedną funkcję (funkcję tworzenia końcowych łączy) w swoich klasach. Czy rozsądne jest, w tym przypadku lub w dowolnej liczbie podobnych hipotetycznych przypadków, rozszerzenie oryginalnej klasy w celu uzyskania …
W języku OO (np. Między innymi w Javie) jak naprawić duplikat kodu w zależności od zakresu jego występowania? Zacznę od (na przykład) w tej samej klasie (zakresie) wykonaj refaktoryzację metody ekstrakcji (poprawka) w klasach o tej samej hierarchii (zakresie) wykonaj Extract Method i Pull Up (fix) ...
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.