J'ai un module, disons «M», qui a quelques clients, disons «C1», «C2», «C3». Je veux répartir l'espace de noms du module M, c'est-à-dire les déclarations des API et des données qu'il expose, en fichier (s) d'en-tête de telle manière que - pour tout client, seules les données et les API …
Contexte: j'utilise C # J'ai conçu une classe, et afin de l'isoler, et de faciliter les tests unitaires, je passe dans toutes ses dépendances; il ne fait aucune instanciation d'objet en interne. Cependant, au lieu de référencer des interfaces pour obtenir les données dont il a besoin, je l'ai en …
Depuis Java 8, des defaultméthodes ont été introduites dans les interfaces. En fait, cela signifie que toutes les méthodes d'un interfacefichier ne le sont pas abstract. À partir de Java 9 (peut-être), les privateméthodes seront autorisées. Cela signifie que toutes les méthodes d'un interfacefichier ne le sont pas public abstract. …
Je conçois une interface avec deux méthodes connexes, similaires à ceci: public interface ThingComputer { default Thing computeFirstThing() { return computeAllThings().get(0); } default List<Thing> computeAllThings() { return ImmutableList.of(computeFirstThing()); } } Environ la moitié des implémentations ne calculeront jamais qu'une chose, tandis que l'autre moitié peut en calculer plus. Cela a-t-il …
Je comprends comment travailler avec les interfaces et l'implémentation d'interface explicite en C #, mais je me demandais si c'était considéré comme une mauvaise forme pour cacher certains membres qui ne seraient pas utilisés fréquemment. Par exemple: public interface IMyInterface { int SomeValue { get; set; } int AnotherValue { …
Je me suis plongé récemment dans une programmation plus "organisée" et j'ai appris que je devrais programmer sur une interface, pas une implémentation. Dans cet esprit, serait-il préférable de "dessiner" un projet dans des interfaces avant d'en écrire l'implémentation dans la mesure du possible? Et si tel est le cas, …
Y a-t-il une différence entre public class A extends AbstractB implements C {...} contre... public class A extends AbstractB {...} abstract class AbstractB implements C {...} Je comprends que dans les deux cas, la classe A finira par se conformer à l'interface. Dans le second cas, AbstractBpeut fournir l'implémentation des …
Lors du développement en POO, une interface / contrat est parfois fourni par une bibliothèque que vous ne pouvez pas modifier. Appelons cette interface J. Vous avez maintenant un objet de classe A qui consomme des objets qui implémentent cette interface. A l'intérieur A, seule une petite partie des définitions …
Pendant des décennies, les interfaces ont été uniquement (uniquement) utilisées pour spécifier les signatures de méthode. On nous a dit que c'était la "bonne façon de faire les choses ™". Ensuite, Java 8 est sorti et a dit: Eh bien, euh, maintenant vous pouvez définir des méthodes par défaut. Je …
Je conçois mon propre petit programme OOP pour simuler les vampires, les loups, les humains et les camions et j'essaie de mettre en œuvre ma propre compréhension limitée des interfaces. ( Je suis encore en train de résumer ici et je n'ai pas encore d'implémentation de code, donc c'est plutôt …
J'essaie de modéliser un jeu de cartes où les cartes ont deux ensembles de fonctionnalités importants: Le premier est un effet. Ce sont les changements d'état du jeu qui se produisent lorsque vous jouez la carte. L'interface pour l'effet est la suivante: boolean isPlayable(Player p, GameState gs); void play(Player p, …
Bien qu'il s'agisse d'une question générale, elle est également spécifique à un problème que je rencontre actuellement. J'ai actuellement une interface spécifiée dans ma solution appelée public interface IContextProvider { IDataContext { get; set; } IAreaContext { get; set; } } Cette interface est souvent utilisée tout au long du …
Selon Herb Sutter, on devrait préférer les interfaces abstraites (toutes les fonctions virtuelles pures) aux classes abstraites en C ++ pour découpler l'implémentation autant que possible. Bien que je trouve personnellement cette règle très utile, j'ai récemment rejoint une équipe avec de nombreux programmeurs Java et dans le code Java, …
Par exemple, est-ce une violation du droit d'auteur si j'écris une classe appelée Random avec exactement les mêmes signatures de but et de méthode que la classe .Net System.Random de Microsoft? Cela fait-il une différence dans la langue dans laquelle il est écrit? Dans ce cas, je veux écrire une …
J'essaie de m'enseigner le génie logiciel et je me heurte à des informations contradictoires qui me déroutent. J'ai appris la POO et ce que sont les classes / interfaces abstraites et comment les utiliser, mais je lis ensuite qu'il faut «privilégier la composition plutôt que l'héritage». Je comprends que la …
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.