TD; DR: Było trochę zamieszania co do tego, o co pytałem, więc oto najważniejszy pomysł na pytanie: Zawsze chciałem, aby pytanie było takie, jakie jest. Być może początkowo nie wyraziłem tego dobrze. Ale intencja zawsze była „ modułowa, oddzielona, luźno sprzężona, odsprzężona, zrefaktoryzowany kod ” znacznie wolniejszy z samej swojej …
Studiowałem programowanie OO, głównie w C ++, C # i Javie. Myślałem, że dobrze to rozumiem, rozumiejąc enkapsulację, dziedziczenie i polimorfizm (a także czytając wiele pytań na tej stronie). Jedną rzeczą, która wydaje się pojawiać tutaj i jest koncepcja „przekazywania wiadomości”. Najwyraźniej jest to coś, co nie jest używane podczas …
Zauważyłem, że od PHP5 dodano interfejsy do języka. Ponieważ jednak PHP jest tak luźno wpisane, wydaje się, że większość korzyści płynących z używania interfejsów została utracona. Dlaczego jest to uwzględnione w języku?
Uwaga : to pytanie jest zredagowanym fragmentem posta na blogu, który napisałem kilka miesięcy temu. Po umieszczeniu linku do bloga w komentarzu do Programmers.SE ktoś poprosił o opublikowanie tutaj pytania, aby mogło na nie odpowiedzieć. Ten post jest moim najbardziej popularnym, ponieważ ludzie często piszą w Google „Nie programuję obiektowo” …
Ostatnio zacząłem patrzeć na rozwój Androida. To wróciło do świata tworzenia oprogramowania Java. Muszę przyznać, że kiedy ostatnio pracowałem z Javą, nie rozumiałem OOP tak bardzo, jak (myślę) teraz. Korzystając głównie z C # w mojej karierze, zauważam zaskakującą różnicę w sposobie używania Java i C #. W języku C …
Duży wpływ wywarła na mnie książka Joshua Bloch Effective Java (2. wydanie), prawdopodobnie bardziej niż jakakolwiek inna książka programowa, którą przeczytałem. W szczególności jego Wzorzec Budowniczego (punkt 2) miał największy efekt. Mimo że konstruktor Blocha posunął mnie znacznie dalej w ciągu kilku miesięcy niż w ciągu ostatnich dziesięciu lat programowania, …
Refaktoryzuję starszą stronę PHP OOP. Kusi mnie, aby zacząć używać „końcowego” na zajęciach do „ make it explicit that the class is currently not extended by anything”. Może to zaoszczędzić dużo czasu, jeśli przyjdę na zajęcia i zastanawiam się, czy mogę zmienić nazwę / usunąć / zmodyfikować protectedwłaściwość lub metodę. …
W pełni zdaję sobie sprawę, że pylinti inne narzędzia analizy statycznej nie są wszechwiedzące, a czasem ich radom należy się nie posłuchać. (Dotyczy to różnych klas wiadomości, nie tylko conventions.) Jeśli mam zajęcia takie jak class related_methods(): def a_method(self): self.stack.function(self.my_var) class more_methods(): def b_method(self): self.otherfunc() class implement_methods(related_methods, more_methods): def __init__(self): …
Na diagramie klas każda klasa zawiera metody i atrybuty. Jakie jest właściwe słowo do opisania obu z nich oprócz czegoś ogólnego, takiego jak zawartość lub przedmioty? Kontekst: Klasa Orange rozszerza klasę Fruit i dziedziczy jej rzeczy . gdzie rzeczy = pojedyncze słowo dla obu metod i atrybutów
Jeśli miałbyś kolegę, który nie rozumiał korzyści płynących z separacji obaw lub nie rozumiał go wystarczająco, by konsekwentnie stosować się w codziennej pracy, jak byś im to wyjaśnił?
Na przykład widziałem niektóre kody, które tworzą taki fragment: Fragment myFragment=new MyFragment(); który deklaruje zmienną jako Fragment zamiast MyFragment, który MyFragment jest klasą potomną Fragment. Nie jestem usatysfakcjonowany tą linią kodów, ponieważ uważam, że ten kod powinien być: MyFragment myFragment=new MyFragment(); co jest bardziej szczegółowe, czy to prawda? Lub w …
Obecnie pracuję w systemie, w którym są Użytkownicy, a każdy użytkownik ma jedną lub wiele ról. Czy dobrą praktyką jest używanie wartości Lista Enum na Użytkowniku? Nie mogę wymyślić nic lepszego, ale to nie jest w porządku. enum Role{ Admin = 1, User = 2, } class User{ ... List<Role> …
Rozumiem motyw zasady najmniejszej wiedzy , ale znajdę pewne wady, jeśli spróbuję zastosować ją w moim projekcie. Jeden z przykładów tej zasady (właściwie jak jej nie używać), które znalazłem w książce Wzory pierwszego projektu, określają, że błędne jest wywoływanie metody na obiektach, które zostały zwrócone z wywołania innych metod, pod …
Programuję w Javie w bardzo obiektowym stylu (OO). OOP przychodzi mi bardzo intuicyjnie, ale mam bardzo małą wiedzę na temat innych rodzajów programowania. Czym dokładnie jest programowanie proceduralne ? Czym dokładnie różni się od OOP? Czy to to samo, co programowanie funkcjonalne ? Kiedyś myślałem, że wszystkie programy, które nie …
Co w programowaniu nazywa się zasadą najmniejszego zdziwienia? Jak ta koncepcja jest związana z projektowaniem dobrych interfejsów API? Czy dotyczy to tylko programowania obiektowego, czy też przenika inne techniki programowania? Czy ma to związek z zasadą „robienia jednej rzeczy w metodzie i robienia tego dobrze”?
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.