Wydaje się całkiem jasne, że „zasada pojedynczej odpowiedzialności” nie oznacza „tylko jednej rzeczy”. Po to są metody. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin mówi, że „klasy powinny mieć tylko jeden powód do zmiany”. …
Zawsze podobał mi się pomysł obsługiwania wielokrotnego dziedziczenia w jednym języku. Najczęściej jednak jest celowo zapominany, a domniemanym „zamiennikiem” są interfejsy. Interfejsy po prostu nie obejmują tego samego gruntu, co wielokrotne dziedziczenie, a to ograniczenie może czasami prowadzić do większej liczby kodów wzorcowych. Jedynym podstawowym powodem, dla którego kiedykolwiek to …
Piszę zajęcia, które „muszą być używane w określony sposób” (chyba wszystkie klasy muszą…). Na przykład, utworzyć fooManagerklasę, która wymaga połączenia do, powiedzmy Initialize(string,string). I, idąc dalej za przykładem, klasa byłaby bezużyteczna, gdybyśmy nie słuchali jej ThisHappenedakcji. Chodzi mi o to, że klasa, którą piszę, wymaga wywołań metod. Ale skompiluje się …
Podczas projektowania programu często dochodzę do momentu, w którym muszę przekazywać instancje obiektów przez kilka klas. Na przykład, jeśli mam kontroler, który ładuje plik audio, a następnie przekazuje go do odtwarzacza, a odtwarzacz przekazuje go do odtwarzacza Runner, który przekazuje go gdzie indziej itp. Wygląda to trochę źle, ale nie …
Często napotykam ten problem, szczególnie w Javie, nawet jeśli uważam, że jest to ogólny problem z OOP. To znaczy: zgłoszenie wyjątku ujawnia problem projektowy. Załóżmy, że mam klasę, która ma String namepole i String surnamepole. Następnie używa tych pól do utworzenia pełnego imienia i nazwiska osoby w celu wyświetlenia go …
W moim ostatnim projekcie zdefiniowałem klasę z następującym nagłówkiem: public class Node extends ArrayList<Node> { ... } Jednak po rozmowie z moim profesorem CS stwierdził, że klasa będzie zarówno „okropna dla pamięci”, jak i „zła praktyka”. Nie uważam, że pierwsze jest szczególnie prawdziwe, a drugie subiektywne. Moje uzasadnienie tego użycia …
Załóżmy, że w prywatnej części klasy istnieje wartość, która jest wykorzystywana przez wiele prywatnych metod. Czy ludzie wolą zdefiniować tę zmienną jako zmienną składową klasy lub przekazać ją jako argument każdej z metod - i dlaczego? Z jednej strony widziałem argument, że należy zredukować stan (tj. Zmienne składowe) w klasie, …
Rozważ następujący projekt public class Person { public virtual string Name { get; } public Person (string name) { this.Name = name; } } public class Karl : Person { public override string Name { get { return "Karl"; } } } public class John : Person { public override …
To pytanie dotyczy tego, czy uczynić zagnieżdżoną klasę w Javie klasą zagnieżdżoną statycznie czy wewnętrznie zagnieżdżoną. Szukałem tutaj i nad przepełnieniem stosu, ale tak naprawdę nie mogłem znaleźć żadnych pytań dotyczących konsekwencji projektowych tej decyzji. Znalezione przeze mnie pytania dotyczą różnicy między statycznymi i wewnętrznymi klasami zagnieżdżonymi, co jest dla …
Powiedzmy, że mam Carklasę: public class Car { public string Engine { get; set; } public string Seat { get; set; } public string Tires { get; set; } } Powiedzmy, że tworzymy system o parkingu, zamierzam wykorzystać dużo Carklasy, więc tworzymy CarCollectionklasę, może mieć kilka dodatkowych metod, takich jak …
Korzystając z programowania obiektowego mamy moc tworzenia klasy wewnątrz klasy (klasa zagnieżdżona), ale nigdy nie tworzyłem zagnieżdżonej klasy w ciągu 4 lat doświadczenia w programowaniu. Do czego służą klasy zagnieżdżone? Wiem, że klasa może być oznaczona jako prywatna, jeśli jest zagnieżdżona i że możemy uzyskać dostęp do wszystkich prywatnych członkó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 …
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.
Oto klasa C ++, która składa się z trzech wartości. class Foo{ //Constructor Foo(std::string, int, char); private: std::string foo; char bar; int baz; }; Wszystkie typy parametrów są różne. Mógłbym przeciążyć konstruktora, aby kolejność nie miała znaczenia. class Foo{ //Constructors Foo(std::string, char, int); Foo(std::string, int, char); Foo(char, int, std::string); Foo(char, …
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.