Pytania otagowane jako interfaces

Pytania dotyczące zagadnień związanych z projektowaniem interfejsu, takich jak programowanie interfejsu.


9
Zmieniłem podpis jednej metody i mam teraz ponad 25 000 błędów. Co teraz?
Niedawno rozpocząłem nową pracę, w której pracuję nad bardzo dużą aplikacją (15M loc). W mojej poprzedniej pracy mieliśmy podobnie dużą aplikację, ale (na lepsze lub gorsze) korzystaliśmy z OSGi, co oznaczało, że aplikacja została podzielona na wiele mikrousług, które można niezależnie zmieniać, kompilować i wdrażać. Nowa aplikacja to tylko jedna …

19
Dlaczego interfejsy są przydatne?
Od jakiegoś czasu studiuję i koduję w C #. Ale nadal nie mogę zrozumieć przydatności interfejsów. Za mało przynoszą na stół. Poza dostarczeniem sygnatur funkcji nic nie robią. Jeśli pamiętam nazwy i podpis funkcji, które należy zaimplementować, nie ma takiej potrzeby. Są one po to, aby upewnić się, że wspomniane …
158 interfaces 

5
Dlaczego wolę kompozycję niż dziedziczenie?
Zawsze czytam, że kompozycja ma pierwszeństwo przed dziedziczeniem. Blogu na przeciwieństwie rodzaju , na przykład, opowiada się za pomocą kompozycji przez dziedziczenie, ale nie mogę zobaczyć, jak polimorfizm został osiągnięty. Mam jednak wrażenie, że kiedy ludzie mówią, że wolą kompozycję, to tak naprawdę wolą kombinację kompozycji i implementacji interfejsu. Jak …

5
Dlaczego do interfejsów w Javie 8 dodano domyślne i statyczne metody, skoro mieliśmy już klasy abstrakcyjne?
W Javie 8 interfejsy mogą zawierać zaimplementowane metody, metody statyczne i tak zwane metody „domyślne” (których klasy implementujące nie muszą zastępować). W mojej (prawdopodobnie naiwnej) opinii nie było potrzeby naruszania takich interfejsów. Interfejsy zawsze były umową, którą musisz wypełnić, a jest to bardzo prosta i czysta koncepcja. Teraz jest to …

15
Czy powinniśmy projektować nasz kod od samego początku, aby umożliwić testowanie jednostkowe?
W naszym zespole toczy się obecnie debata na temat tego, czy modyfikacja projektu kodu w celu umożliwienia testowania jednostkowego jest zapachem kodu lub w jakim stopniu można to zrobić bez zapachu kodu. Stało się tak, ponieważ dopiero zaczynamy wprowadzać praktyki, które są obecne w prawie każdej innej firmie programistycznej. W …



7
Kiedy używać klas abstrakcyjnych zamiast interfejsów z metodami rozszerzenia w C #?
„Klasa abstrakcyjna” i „interfejs” są podobnymi pojęciami, a interfejs jest bardziej abstrakcyjny z tych dwóch. Jednym z czynników różnicujących jest to, że klasy abstrakcyjne zapewniają w razie potrzeby implementacje metod dla klas pochodnych. Jednak w języku C # ten czynnik różnicujący został zmniejszony dzięki niedawnemu wprowadzeniu metod rozszerzenia, które umożliwiają …

10
Czy lepsze jest Show () + Hide () lub SetVisible (bool widoczne)?
Co jest lepsze i dlaczego? (Z punktu widzenia projektowania interfejsu): a) Mieć dwa Show()i Hide()funkcje b) Aby mieć jedną SetVisible(bool visible)funkcję EDYCJA: Na przykład niektóre obiekty mają stan widoczności i ta funkcja służy do jego zmiany. c) wszystkie trzy Show(), Hide(), SetVisible(bool visible)funkcje
59 java  c++  interfaces 

3
Dlaczego C # zezwala na właściwości w interfejsach?
W języku C # następujący kod jest poprawny interface I{ int property{get;set;} } To nie ma dla mnie żadnego sensu. Wydaje się to łamać jedną z najważniejszych zasad interfejsów: brak stanu (innymi słowy brak pól). Czy właściwość nie tworzy niejawnego pola prywatnego? Czy to nie byłoby naprawdę złe dla interfejsów?

9
Programowanie do przyszłego wykorzystania interfejsów
Obok mnie siedzi kolega, który zaprojektował taki interfejs: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Problem polega na tym, że obecnie nie używamy tego parametru „end” nigdzie w naszym kodzie, po prostu istnieje, ponieważ w przyszłości będziemy musieli go użyć. Próbujemy …

4
Co miał na myśli Rich Hickey, gdy powiedział: „Cała ta specyfika [interfejsów / klas / typów] zabija twoje ponowne użycie!”
W inspirującej myśli Richa Hickeya na konferencji goto „ Wartość wartości ” po 29 minutach mówi o narzutach związanych z językiem takim jak Java i mówi: „Wszystkie te interfejsy zabijają ponowne użycie”. Co on ma na myśli? Czy to prawda? W poszukiwaniu odpowiedzi natknąłem się na: Zasada najmniejszej wiedzy AKA …


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ą …

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.