Pytania otagowane jako interfaces

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


12
Czy „jeśli metoda jest ponownie używana bez zmian, umieść ją w klasie bazowej, w przeciwnym razie stwórz interfejs” to dobra zasada?
Mój kolega wymyślił ogólną zasadę wyboru między tworzeniem klasy podstawowej a interfejsem. On mówi: Wyobraź sobie każdą nową metodę, którą zamierzasz wdrożyć. Rozważ to dla każdego z nich: czy ta metoda zostanie zaimplementowana przez więcej niż jedną klasę w dokładnie tej formie, bez żadnych zmian? Jeśli odpowiedź brzmi „tak”, utwórz …


2
Jaki jest właściwy sposób implementacji interfejsu OnClickListener dla wielu przycisków
Moja aktywność na Androida zawiera wiele przycisków, z których wszystkie wymagają OnClickListener. Widziałem wiele różnych sposobów robienia tego, takich jak: Implementacja interfejsu w klasie aktywności Tworzenie oddzielnej klasy, która implementuje interfejs Definiowanie anonimowej klasy wewnętrznej dla każdego przycisku. Widziałem wiele przykładów każdego podejścia. Jednak nie jest dla mnie jasne, dlaczego …



3
Czy interfejs może zależeć od konkretnych klas?
Tworzę interfejs w Javie dla niestandardowej procedury obsługi błędów. Chcę przekazać obiekt błędu argumentu, ale potrzebuję go, aby był dzieckiem Exceptionklasy. Czy mogę używać mojej zdefiniowanej nazwy klasy w interfejsie? Czy nie zmniejszy to interfejsu, ponieważ nie będzie zależny od żadnej implementacji? Próbuję zrobić coś takiego: public class CustomException { …


2
Zasada segregacji interfejsów: Co zrobić, jeśli interfejsy w znacznym stopniu się pokrywają?
Z Agile Software Development, zasad, wzorców i praktyk: Pearson New International Edition : Czasami metody przywoływane przez różne grupy klientów nakładają się. Jeśli nakładanie się jest niewielkie, interfejsy dla grup powinny pozostać osobne. Wspólne funkcje powinny być deklarowane we wszystkich nakładających się interfejsach. Klasa serwera odziedziczy wspólne funkcje z każdego …

5
Czy zawsze ma sens „programować do interfejsu” w Javie?
Widziałem dyskusję przy tym pytaniu dotyczącą sposobu tworzenia instancji klasy implementującej z interfejsu. W moim przypadku piszę bardzo mały program w Javie, który korzysta z instancji TreeMapi, zgodnie z opinią wszystkich, powinien być utworzony w następujący sposób: Map<X> map = new TreeMap<X>(); W moim programie wywołuję funkcję map.pollFirstEntry(), która nie …

3
Czy używanie interfejsów dla typów danych jest anty-wzorcem?
Załóżmy, że mam różne podmioty w moim modelu (przy użyciu EF), powiedzmy Użytkownik, Produkt, Faktura i Zamówienie. Piszę kontrolkę użytkownika, która może wydrukować podsumowania obiektów encji w mojej aplikacji, gdzie encje należą do wcześniej ustalonego zestawu, w tym przypadku mówię, że streszczenia użytkownika i produktu można podsumować. Wszystkie streszczenia będą …

6
Podziel duże interfejsy
Korzystam z dużego interfejsu z około 50 metodami dostępu do bazy danych. Interfejs został napisany przez mojego kolegę. Omówiliśmy to: Ja: 50 metod to za dużo. To zapach kodu. Kolega: Co mam z tym zrobić? Chcesz dostępu do DB - masz go. Ja: Tak, ale jest niejasne i trudno je …

6
Czy jest jakaś różnica między interfejsami a klasami abstrakcyjnymi, które mają tylko metody abstrakcyjne?
Powiedzmy, że mamy klasę abstrakcyjną i niech ta klasa ma tylko abstrakcyjne metody. Czy ta klasa abstrakcyjna różni się od interfejsu, który ma tylko te same metody? Chcę wiedzieć, czy istnieją jakieś różnice zarówno filozoficzne, obiektywne, jak i podstawowe w implementacji języka programowania między klasą abstrakcyjną zawierającą tylko elementy abstrakcyjne …

3
Reguły dotyczące konkretności typów parametrów metody, typów zwracanych i typów właściwości
Jakiś czas temu przeczytałem rodzaj „ogólnej zasady” na temat konkretności typów parametrów metody, typów zwracanych i typów właściwości, ale po prostu tego nie pamiętam. Mówiło coś o tym, aby typy zwracane były jak najbardziej konkretne, a typy parametrów jak najbardziej abstrakcyjne ... lub odwrotnie. Nie wiem, czy tak naprawdę była …

2
Czy istnieje zasada interfejsu „pytaj tylko o to, czego potrzebujesz”?
Zacząłem używać zasady projektowania i korzystania z interfejsów, która mówi w zasadzie: „proś tylko o to, czego potrzebujesz”. Na przykład, jeśli mam kilka typów, które można usunąć, utworzę Deletableinterfejs: interface Deletable { void delete(); } Następnie mogę napisać ogólną klasę: class Deleter<T extends Deletable> { void delete(T t) { t.delete(); …

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.