W niektórych kodach, które przeglądam, widzę rzeczy, które są moralnym odpowiednikiem: public class Foo { private Bar bar; public MethodA() { bar = new Bar(); bar.A(); bar = null; } public MethodB() { bar = new Bar(); bar.B(); bar = null; } } To pole barjest logicznie zmienną lokalną, ponieważ …
Downcasting oznacza rzutowanie z klasy podstawowej (lub interfejsu) do podklasy lub klasy liścia. Przykładem downcast może być rzutowanie z System.Objectinnego typu. Downcasting jest niepopularny, może pachnie kodem: doktryna obiektowa preferuje na przykład definiowanie i wywoływanie metod wirtualnych lub abstrakcyjnych zamiast downcastingu. Jakie, jeśli w ogóle, są dobre i właściwe przypadki …
Jaka jest różnica między dwiema metodami UpdateSubject poniżej? Czułem, że stosowanie metod statycznych jest lepsze, jeśli chcesz po prostu operować na jednostkach. W jakich sytuacjach powinienem stosować metody niestatyczne? public class Subject { public int Id {get; set;} public string Name { get; set; } public static bool UpdateSubject(Subject subject) …
Zasada Jednej Odpowiedzialności stanowi, że klasa powinna zrobić jedną i tylko jedną rzecz. Niektóre przypadki są dość wyraźne. Inne są jednak trudne, ponieważ to, co wygląda na „jedną rzecz”, gdy jest oglądane na danym poziomie abstrakcji, może być wieloma rzeczami, gdy patrzy się na niższym poziomie. Obawiam się również, że …
Dzisiaj pokłóciłem się z kimś. Wyjaśniałem zalety posiadania bogatego modelu domeny w przeciwieństwie do anemicznego modelu domeny. I pokazałem swój punkt w prostej klasie wyglądającej tak: public class Employee { public Employee(string firstName, string lastName) { FirstName = firstName; LastName = lastname; } public string FirstName { get private set; …
Nadal jestem uczniem szkoły średniej (rozpoczynam naukę w 10 klasie) i muszę jeszcze wziąć udział w kursie komputerowym w szkole. Wszystko, co do tej pory zrobiłem, to książki. Te książki nauczyły mnie takich pojęć, jak dziedziczenie, ale w jaki sposób podział programu na wiele klas pomaga? Książki nigdy mi nie …
Główną ideą OOP jest ujednolicenie danych i zachowania w jednym obiekcie - obiekcie. W programowaniu proceduralnym istnieją dane i osobno algorytmy modyfikujące dane. We wzorcu Model-Widok-Kontroler dane i logika / algorytmy są umieszczone w odrębnych jednostkach, odpowiednio model i kontroler. W równoważnym podejściu OOP nie należy umieszczać modelu i kontrolera …
Przeprowadziłem bardzo stymulującą i interesującą dyskusję z kolegą na temat ORM oraz jego zalet i wad. Moim zdaniem ORM jest użyteczny tylko w najrzadszych przypadkach. Przynajmniej z mojego doświadczenia. Ale nie chcę teraz wymieniać własnych argumentów. Pytam więc, co sądzisz o ORM? Jakie są zalety i wady?
Podsumowanie problemu: Krótko mówiąc, odziedziczyłem bazę kodu i zespół programistów, których nie wolno mi zastępować, a korzystanie z God Objects to duży problem. Idąc dalej, chcę, abyśmy ponownie zmienili czynniki, ale dostaję odepchnięcie od zespołów, które chcą robić wszystko z Boskimi Przedmiotami „ponieważ jest to łatwiejsze”, a to oznacza, że …
Być może największą obietnicą użycia paradygmatu obiektowego jest ponowne użycie kodu. Niektórzy spierają się, że udało się to osiągnąć. Dlaczego został (nie) osiągnięty? Czy kod jest ponownie wykorzystywany, ponieważ definiuje go OOP, czy projekty są bardziej produktywne? Lub łatwiejszy w zarządzaniu? Lub łatwiejsze w utrzymaniu? A może z lepszą jakością? …
Właśnie kończę studia magisterskie (z informatyki) i staram się o pracę. Zauważyłem, że wiele firm prosi o zrozumienie orientacji obiektowej. Popularne pytania podczas wywiadu dotyczą dziedziczenia, polimorfizmu, akcesoriów itp. Czy OO jest naprawdę tak ważne? Miałem nawet rozmowę o pracę programistyczną w C, a połowa wywiadu to OO. Czy w …
C ++ ma zwykłe wielokrotne dziedziczenie, wiele projektów językowych zabrania go jako niebezpiecznego. Ale niektóre języki, takie jak Ruby i PHP, używają dziwnej składni, aby robić to samo i nazywać to mixins lub cechami. Słyszałem wiele razy, że miksy / cechy są trudniejsze do nadużywania niż zwykłe wielokrotne dziedziczenie. Co …
W miejscu pracy widzę wiele klas, które wykonują takie rzeczy: public class ClassThatCallsItsOwnGettersAndSetters { private String field; public String getField() { return field; } public void setField(String field) { this.field = field; } public void methodWithLogic() { setField("value"); //do stuff String localField = getField(); //do stuff with "localField" } } …
Często widziałem, że programowanie obiektowe opiera się na modelowaniu świata rzeczywistego, ale czy tak? Wydaje mi się, że nie dotyczy to niczego poza warstwą biznesową. Moje klasy GUI / klasy dostępu do danych nie modelują niczego w prawdziwym świecie. Nawet w mojej warstwie biznesowej mam klasy takie jak obserwatorzy, menedżerowie, …
Jaki jest cel kontenerów MKOl? Połączone powody można uprościć w następujący sposób: Podczas korzystania z zasad programistycznych OOP / SOLID, wstrzykiwanie zależności jest nieporządne. Albo masz punkty wejścia najwyższego poziomu, które zarządzają zależnościami dla wielu poziomów poniżej siebie i przekazują zależności rekurencyjnie przez konstrukcję, albo masz nieco zduplikowany kod we …
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.