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


5
Czy dobrą praktyką jest unikanie stałych za pomocą getterów?
Czy dobrą praktyką jest zastępowanie stałych używanych poza klasami przez metody pobierające? Na przykład, czy lepiej jest użyć if User.getRole().getCode() == Role.CODE_ADMINlub if User.getRole().isCodeAdmin()? Doprowadziłoby to do tej klasy: class Role { constant CODE_ADMIN = "admin" constant CODE_USER = "user" private code getRoleCode() { return Role.code } isCodeAdmin () { …

6
Czy interfejs może zawierać metodę, która zwraca konkretny typ implementacji w postaci stałej?
Bardzo często wpadam w sytuację, w której potrzebuję innego zachowania komponentu, które zależy od konkretnego rodzaju innego interfejsu. Aby zilustrować moje pytanie, napisałem mały fragment kodu, który pokaże, co mam na myśli. W tym przykładzie próbuję utworzyć obiekt żywnościowy z obiektu zwierzęcego. interface Animal { void growl(); String getAnimalType(); //"DOG" …


8
Czy moja sekwencyjna kolekcja powinna zaczynać się od indeksu 0 czy indeksu 1?
Tworzę model obiektowy dla urządzenia, które ma wiele kanałów. Rzeczowniki używane między klientem a mną to Channeli ChannelSet. („Zestaw” nie jest semantycznie dokładny, ponieważ jest uporządkowany, a prawidłowy zestaw nie. Ale to problem na inny czas.) Używam C #. Oto przykład użycia ChannelSet: // load a 5-channel ChannelSet ChannelSet channels …


5
Dlaczego źle napisać coś w języku X tak, jakbyś pisał program w języku Y pod względem korzystania ze wspólnego paradygmatu kodowania [zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 5 lat temu . Jakiś czas temu zadałem pytanie na temat SO napisane w C ++, ale zamiast uzyskać …


4
Jak dodać funkcjonalność do obiektu, który już istnieje?
Mam interfejs, który ma pewną liczbę dobrze zdefiniowanych funkcji. Powiedzmy: interface BakeryInterface { public function createCookies(); public function createIceCream(); } Działa to dobrze w przypadku większości implementacji interfejsu, ale w kilku przypadkach muszę dodać nową funkcjonalność (np. Być może wprowadzoną do nowej metody createBrownies()). Oczywistym / naiwnym podejściem do tego …



4
Wyjaśnij zasadę otwartej / zamkniętej
Jak już wyjaśniłem, zasada otwarta / zamknięta stwierdza, że ​​raz napisanego kodu nie należy modyfikować (oprócz poprawek błędów). Ale jeśli moje reguły biznesowe ulegną zmianie, czy nie powinienem modyfikować kodu wdrażającego te zmiany? Podejrzewam, że nie rozumiem czegoś na temat zasady, ponieważ nie ma to dla mnie sensu.

10
Czy jest to anty-wzorzec, jeśli właściwość klasy tworzy i zwraca nową instancję klasy?
Mam klasę o nazwie, Headingktóra robi kilka rzeczy, ale powinna również być w stanie zwrócić przeciwieństwo bieżącej wartości nagłówka, która w końcu musi zostać użyta poprzez utworzenie nowej instancji Headingsamej klasy. Mogę mieć prostą właściwość wywoływaną w reciprocalcelu zwrócenia przeciwnego nagłówka bieżącej wartości, a następnie ręcznie utworzyć nową instancję klasy …

5
Czy moje użycie jawnego operatora rzutowania jest rozsądne, czy zły hack?
Mam duży przedmiot: class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } oraz specjalistyczny obiekt podobny do DTO: class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;} public string FieldN {get;set;} } Osobiście uważam koncepcję jawnego przeniesienia …

10
Jaki jest właściwy sposób modelowania tej aktywności w świecie rzeczywistym, która wydaje się wymagać cyklicznych odniesień w OOP?
Walczyłem z problemem w projekcie Java dotyczącym referencji cyklicznych. Próbuję modelować rzeczywistą sytuację, w której wydaje się, że przedmiotowe obiekty są od siebie zależne i muszą się o sobie wiedzieć. Projekt jest ogólnym modelem gry planszowej. Podstawowe klasy są niespecyficzne, ale zostały rozszerzone o specyfikę szachów, backgammon i innych gier. …

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.