Je lis le livre Principes, pratiques et modèles d'injection de dépendance et j'ai lu sur le concept d'abstraction qui fuit qui est bien décrit dans le livre. Ces jours-ci, je refactorise une base de code C # en utilisant l'injection de dépendance afin que les appels asynchrones soient utilisés au …
J'ai une classe avec des fonctionnalités par défaut / partagées. J'utilise abstract classpour cela: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new ArgumentOutOfRangeException(nameof(typeDefinition)); } protected …
Les interfaces vides sont généralement considérées comme une mauvaise pratique, pour autant que je sache - en particulier lorsque des éléments tels que les attributs sont pris en charge par le langage. Cependant, une interface est-elle considérée comme «vide» si elle hérite d'autres interfaces? interface I1 { ... } interface …
En parcourant le Java Collections Framework, j'ai remarqué que bon nombre des interfaces ont le commentaire (optional operation). Ces méthodes permettent à des classes d'implémentation de passer par UnsupportedOperationExceptionsi elles ne veulent tout simplement pas implémenter cette méthode. Un exemple de ceci est la addAllméthode dans le Set Interface. Maintenant, …
Par exemple: Dire que j'ai des classes A, B, C. J'ai deux interfaces, appelons-les IAnimalet IDog. IDoghérite de IAnimal. Aet Bsont IDogs, tandis que Cne l'est pas, mais c'est un IAnimal. La partie importante est qu'elle IDogne fournit aucune fonctionnalité supplémentaire. Il est uniquement utilisé pour autoriser Aet B, mais …
Disons que nous faisons un analyseur. Une mise en œuvre pourrait être: public sealed class Parser1 { public string Parse(string text) { ... } } Ou nous pourrions passer le texte au constructeur à la place: public sealed class Parser2 { public Parser2(string text) { this.text = text; } public …
Cela s'applique à la fois à Java SE et à Android, car les contrats sont identiques. Documentation CharSequence pour Java SE Documentation CharSequence pour Android CharSequencene définit pas de contains(CharSequence)méthode. Je n'arrive pas à trouver une raison pour laquelle, et l'inclure serait très utile, évitant d'avoir à appeler CharSequence#toString()pour vérifier …
J'ai travaillé sur la refactorisation de code, et je pense que j'ai peut-être fait le premier pas dans le terrier du lapin. J'écris l'exemple en Java, mais je suppose que cela pourrait être agnostique. J'ai une interface Foodéfinie comme public interface Foo { int getX(); int getY(); int getZ(); } …
J'ai deux objets qui représentent un «Bar / Club» (un endroit où vous buvez / socialisez). Dans un scénario, j'ai besoin du nom de la barre, de l'adresse, de la distance, du slogon Dans un autre scénario, j'ai besoin du nom de la barre, de l'adresse, de l'URL du site …
Java fait une distinction claire entre classet interface. (Je crois que C # fait aussi, mais je n'ai aucune expérience avec cela). Cependant, lors de l'écriture de C ++, il n'y a pas de distinction imposée par le langage entre la classe et l'interface. Par conséquent, j'ai toujours considéré l'interface …
Étant donné le type existentiel T = ∃X.{op₁:X, op₂:X→boolean} et cette interface Java générique: interface T<X> { X op₁(); boolean op₂(X something); } Quelles sont les différences fondamentales entre le type existentiel et l'interface Java? Évidemment, il existe des différences syntaxiques et l'orientation objet de Java (qui comprend également des …
Je joue avec C # pour Windows et le développement ASP.net MVC depuis un certain temps maintenant. Mais je ne suis toujours pas clair sur certains points. J'essaie de comprendre la différence fondamentale entre les problèmes de performances et l'utilisation et l'échange de types similaires d' interfaces de collection génériques …
J'ai commencé à étudier les modèles de conception récemment, et une chose que je code conviendrait parfaitement au modèle de stratégie, à l'exception d'une petite différence. Essentiellement, certains (mais pas tous) de mes algorithmes ont besoin d'un ou deux paramètres supplémentaires qui leur sont transmis. Je vais donc devoir leur …
Au cours d'une de mes études sur les subtilités de C #, je suis tombé sur un passage intéressant concernant l'implémentation d'interface explicite. While this syntax is quite helpful when you need to resolve name clashes, you can use explicit interface implementation simply to hide more "advanced" members from the …
Contexte J'ai un projet qui dépend de l'utilisation d'un certain type de périphérique matériel, alors peu importe qui fabrique ce périphérique tant qu'il fait ce dont j'ai besoin. Cela étant dit, même deux appareils qui sont censés faire la même chose auront des différences lorsqu'ils ne sont pas fabriqués par …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.