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
Zapisujesz obiekt własną metodą lub inną klasą?
Jeśli chcę zapisać i pobrać obiekt, czy powinienem utworzyć inną klasę do obsługi go, czy lepiej byłoby to zrobić w samej klasie? A może mieszanie obu? Które jest zalecane zgodnie z paradygmatem OOD? Na przykład Class Student { public string Name {set; get;} .... public bool Save() { SqlConnection con …

6
Jak myśleć jako programista C po uprzedzeniu w języku OOP? [Zamknięte]
Wcześniej używałem tylko języków programowania obiektowego (C ++, Ruby, Python, PHP), a teraz uczę się C. Trudno mi znaleźć właściwy sposób robienia rzeczy w języku bez pojęcia 'Obiekt'. Zdaję sobie sprawę, że można używać paradygmatów OOP w C, ale chciałbym nauczyć się C-idiomatycznego sposobu. Podczas rozwiązywania problemu programistycznego, pierwszą rzeczą, …



5
Przekazać identyfikator lub obiekt?
Czy przy podawaniu metody logiki biznesowej w celu uzyskania encji domeny parametr powinien akceptować obiekt lub identyfikator? Na przykład, czy powinniśmy to zrobić: public Foo GetItem(int id) {} albo to: public Foo GetItem(Foo foo) {} Wierzę w przekazywanie obiektów w całości, ale co z tym przypadkiem, w którym otrzymujemy przedmiot …

11
Podklasy przeznaczone wyłącznie dla konstruktorów: czy jest to anty-wzór?
Rozmawiałem ze współpracownikiem i skończyły się sprzeczne intuicje na temat celu podklasy. Moją intuicją jest to, że jeśli podstawową funkcją podklasy jest wyrażenie ograniczonego zakresu możliwych wartości jej elementu nadrzędnego, prawdopodobnie nie powinna to być podklasa. Argumentował za odwrotną intuicją: ta podklasa reprezentuje bardziej „specyficzny” obiekt, a zatem relacja podklasy …

9
Czy pisząc kod zorientowany obiektowo, powinienem zawsze kierować się wzorcem projektowym?
Czy istnieje jakiś wzorzec projektowy dla dowolnego programu obiektowego? Pytam o to, ponieważ ostatnio widziałem implementację Doorklasy z Lock. Było to częścią testu, a odpowiedź brzmiała, że ​​kod jest zgodny ze wzorcem Null Object: class Lock { public: virtual void close() = 0; virtual void open() = 0; virtual bool …

11
Czy abstrakcyjne klasy / metody są przestarzałe?
Kiedyś tworzyłem wiele abstrakcyjnych klas / metod. Potem zacząłem używać interfejsów. Teraz nie jestem pewien, czy interfejsy nie powodują, że klasy abstrakcyjne stają się przestarzałe. Potrzebujesz w pełni abstrakcyjnej klasy? Zamiast tego utwórz interfejs. Potrzebujesz abstrakcyjnej klasy z pewną implementacją? Utwórz interfejs, stwórz klasę. Dziedzicz klasę, zaimplementuj interfejs. Dodatkową korzyścią …

17
Jak mogę być bardziej pewny swoich umiejętności programistycznych? [Zamknięte]
Programowanie nie jest mi obce. Najpierw zacząłem robić znaczniki (HTML, teraz proszę się ze mnie nie śmiać), kiedy miałem 12 lat, i trochę BASIC, kiedy miałem 13 lat (w tym momencie wiele wiedziałem o schematach blokowych, pseudokodach), ale potem zostałem upomniany Biologia w liceum, a zatem przeoczyła „prawdziwą” znajomość programowania …

2
Dlaczego metody przyjmujące nieograniczoną liczbę parametrów często definiują przeciążenia przy mniejszej liczbie parametrów?
Na przykład System.IO.Path.Combinemetoda w .NET ma następujące przeciążenia: Combine(params String[]) Combine(String, String) Combine(String, String, String) Combine(String, String, String, String) Jaki jest sens ostatnich trzech? Pierwszy obejmowałby je wszystkie, ponieważ jeśli przyjrzysz się uważnie, użyje paramssłowa kluczowego. Argument zgodności wstecznej obejmowałby tylko Combine(String, String)wariant, ponieważ była to jedyna wersja do .NET …

5
Jak zdefiniowanie, że metodę można zastąpić silniejszym zaangażowaniem, niż zdefiniowanie, że można wywołać metodę?
Od: http://www.artima.com/lejava/articles/designprinciples4.html Erich Gamma: Nadal uważam, że to prawda, nawet po dziesięciu latach. Dziedziczenie to fajny sposób na zmianę zachowania. Wiemy jednak, że jest kruchy, ponieważ podklasa może łatwo przyjmować założenia dotyczące kontekstu, w którym wywoływana jest metoda zastępowana. Istnieje ścisłe powiązanie między klasą podstawową a podklasą z powodu niejawnego …

8
Czy możliwości obiektu powinny być identyfikowane wyłącznie przez interfejsy, które implementuje?
isOperator C # i operator Java instanceofpozwalają na rozgałęzienie w interfejsie (lub, co bardziej nieokiełznane, jego klasie bazowej) zaimplementowanej instancji obiektu. Czy właściwe jest używanie tej funkcji do rozgałęzień wysokiego poziomu w oparciu o możliwości interfejsu? A może klasa podstawowa powinna zapewniać zmienne boolowskie, aby zapewnić interfejs opisujący możliwości obiektu? …

8
Kiedy faktycznie używamy programowania obiektowego? [Zamknięte]
Piszę program w języku Python, który w zasadzie manipuluje ciągami znaków i zastanawiałem się, czy powinienem to zrobić przy użyciu zasad OOP, czy nie. Klient powiedział mi, że nie obchodzi go kod, po prostu chce, żeby to się stało . Wiem, że kod zorientowany obiektowo nie jest z definicji czyszczący, …

5
Kiedy powinienem rozszerzyć klasę Java Swing?
Moje obecne rozumienie implementacji dziedziczenia jest takie, że należy rozszerzać klasę tylko wtedy, gdy istnieje relacja IS-A . Jeśli klasa nadrzędna może dodatkowo mieć bardziej szczegółowe typy podrzędne o różnych funkcjach, ale będzie miała wspólne elementy wyodrębnione w obiekcie nadrzędnym. Kwestionuję to zrozumienie z powodu tego, co zaleca nam mój …


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.