Pytania otagowane jako interfaces

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

3
Ogólny czy wspólny interfejs?
Nie pamiętam, kiedy ostatni raz pisałem lekcje ogólne. Za każdym razem, gdy wydaje mi się, że potrzebuję go po pewnym namyśle, wyciągam wniosek, że nie. Druga odpowiedź na to pytanie sprawiła, że ​​poprosiłem o wyjaśnienia (ponieważ nie mogę jeszcze komentować, zadałem nowe pytanie). Weźmy więc podany kod jako przykład przypadku, …

4
Kto rozszerza interfejsy? I dlaczego?
AFAIK, moje klasy klasy extendsnadrzędne i implementsinterfejsy. Ale natrafiam na sytuację, w której nie mogę użyć implements SomeInterface. Jest to deklaracja typów ogólnych. Na przykład: public interface CallsForGrow {...} public class GrowingArrayList <T implements CallsForGrow> // BAD, won't work! extends ArrayList<T> Tutaj używanie implementsjest składniowo zabronione. Najpierw pomyślałem, że używanie …


2
Zasada najmniejszego zdziwienia (POLA) i interfejsy
Dobra ćwierć wieku temu, kiedy uczyłem się C ++, nauczono mnie, że interfejsy powinny wybaczać i, w miarę możliwości, nie przejmować się kolejnością wywoływania metod, ponieważ konsument może nie mieć dostępu do źródła lub dokumentacji zamiast to. Jednak za każdym razem, gdy mentorowałem młodszych programistów i starszych deweloperów, słyszeli mnie, …

5
Czy wyliczenia tworzą kruche interfejsy?
Rozważ poniższy przykład. Każda zmiana wyliczenia ColorChoice wpływa na wszystkie podklasy IWindowColor. Czy wytryski powodują kruche interfejsy? Czy istnieje coś lepszego niż wyliczenie, które pozwala na większą elastyczność polimorficzną? enum class ColorChoice { Blue = 0, Red = 1 }; class IWindowColor { public: ColorChoice getColor() const=0; void setColor( const …

4
Czy programista front-end powinien kiedykolwiek określać format JSON dla programistów back-end?
Przejmuję frontendową rolę w projekcie. Czy powinienem określać dla moich kolegów z zespołu dokładny format JSON, który ich PHP zwraca do mojego JavaScript? Na przykład, czy powinienem im powiedzieć, że powinni użyć formatu podobnego do opisanego tutaj: Właściwy sposób na strukturyzację JSON na potrzeby konsumpcji A może powinienem zachować jak …

5
Kiedy używać interfejsów (testy jednostkowe, IoC?)
Podejrzewam, że popełniłem tutaj błąd ucznia i szukam wyjaśnienia. Wiele klas w moim rozwiązaniu (C #) - śmiem twierdzić, że większość - skończyłem pisać odpowiedni interfejs. Np. Interfejs „ICalculator” i klasa „Calculator”, która go implementuje, nawet jeśli nigdy nie zastąpię tego kalkulatora inną implementacją. Ponadto większość z tych klas znajduje …

4
Jak najlepiej uporządkować pliki klas i interfejsów?
OK .. po całej dyskusji zmieniam nieco moje pytanie, aby lepiej odzwierciedlić konkretny przykład, z którym mam do czynienia. Mam dwie klasy ModelOnei klasy ModelTwote wykonują podobny typ funkcjonalności, ale nie są ze sobą powiązane. Mam jednak trzecią klasę, CommonFuncktóra zawiera pewną funkcjonalność publiczną, która jest zaimplementowana zarówno ModelOnei ModelTwozostała …

5
Użycie słowa kluczowego „Korzystanie” w interfejsie C #
Kiedy używam C # do pisania kodu i definiuję interfejs za pomocą Visual Studio 2010, zawsze zawiera on szereg instrukcji „using” (jak pokazano w przykładzie) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TestEngine.TestNameSpace { interface ITest1 { bool testMethod(int xyz); } } Zastanawiam się, do czego służą i …


5
Przekazać obiekt dwukrotnie do tej samej metody lub skonsolidować za pomocą połączonego interfejsu?
Mam metodę, która tworzy plik danych po rozmowie z tablicą cyfrową: CreateDataFile(IFileAccess boardFileAccess, IMeasurer boardMeasurer) Oto boardFileAccessi boardMeasurerta sama instancja Boardobiektu, który implementuje zarówno IFileAccessi IMeasurer. IMeasurerjest stosowany w tym przypadku do pojedynczej metody, która spowoduje, że jeden pin na płycie będzie aktywny, aby wykonać prosty pomiar. Dane z tego …

3
Dlaczego interfejsy są bardziej pomocne niż nadklasy w uzyskiwaniu luźnego sprzężenia?
( Dla celów tego pytania, kiedy mówię „interfejs”, mam na myśli konstrukcję językowąinterface , a nie „interfejs” w innym znaczeniu tego słowa, tj. Publiczne metody, które klasa oferuje światu zewnętrznemu w celu komunikowania się i manipuluj nim. ) Luźne sprzężenie można uzyskać poprzez uzależnienie obiektu od abstrakcji zamiast rodzaju betonu. …

5
Jaka jest funkcjonalna alternatywa programowania dla interfejsu?
Jeśli chcę programować w stylu „funkcjonalnym”, czym zastąpiłbym interfejs? interface IFace { string Name { get; set; } int Id { get; } } class Foo : IFace { ... } Może Tuple<>? Tuple<Func<string> /*get_Name*/, Action<String> /*set_Name*/, Func<int> /*get_Id*/> Foo; Jedynym powodem, dla którego używam interfejsu jest przede wszystkim to, …

6
Jakie są różnice między klasami abstrakcyjnymi, interfejsami i kiedy z nich korzystać
Ostatnio zacząłem owijać głowę wokół OOP i teraz jestem do tego stopnia, że ​​im więcej czytam o różnicach między klasami abstrakcyjnymi i interfejsami, tym bardziej się mylę. Jak dotąd nie można utworzyć żadnej z nich. Interfejsy są mniej więcej strukturalnymi planami, które określają szkielet, a streszczenia są różne, ponieważ są …


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.