Questions marquées «design-patterns»

Un modèle de conception est une solution réutilisable générale à un problème courant dans la conception de logiciels.





3
Quel est le principe du moindre étonnement?
Dans la programmation, ce qu’on appelle le principe de moindre surprise? Comment ce concept est-il lié à la conception de bonnes API? Est-ce quelque chose qui ne s'applique qu'à la programmation orientée objet ou est-ce que cela imprègne également d'autres techniques de programmation? Est-ce lié au principe de "faire une …


2
Choisir le bon modèle de conception
J'ai toujours reconnu l'importance d'utiliser des modèles de conception. Je suis curieux de savoir comment les autres développeurs choisissent le plus approprié. Utilisez-vous une série de caractéristiques (comme un organigramme) pour vous aider à décider? Par exemple: Si les objets sont liés, mais que nous ne voulons pas spécifier de …



9
Pourquoi avons-nous besoin d'une classe Builder lors de l'implémentation d'un modèle Builder?
J'ai vu de nombreuses implémentations du modèle Builder (principalement en Java). Tous ont une classe d'entité (disons une Personclasse) et une classe de constructeur PersonBuilder. Le générateur "empile" une variété de champs et renvoie un new Personavec les arguments passés. Pourquoi avons-nous explicitement besoin d'une classe de générateur, au lieu …

10
Envoyez-vous généralement des objets ou leurs variables membres dans des fonctions?
Quelle est la pratique généralement acceptée entre ces deux cas: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } ou function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } En d'autres termes, est-il généralement préférable de faire circuler des objets entiers ou simplement les champs dont …

7
Est-ce une odeur de code de mettre un drapeau dans une boucle pour l'utiliser plus tard?
J'ai un morceau de code où j'itère une carte jusqu'à ce qu'une certaine condition soit remplie et ensuite j'utilise cette condition pour faire plus de choses. Exemple: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { …

9
Existe-t-il des modèles de conception qui ne sont possibles que dans des langages typés dynamiquement comme Python?
J'ai lu une question connexe. Existe-t-il des modèles de conception inutiles dans les langages dynamiques comme Python? et je me suis souvenu de cette citation sur Wikiquote.org La chose merveilleuse à propos de la frappe dynamique est qu'elle vous permet d'exprimer tout ce qui est calculable. Et les systèmes de …

3
Quels sont les inconvénients du modèle ActiveRecord?
Je suis curieux de savoir quels sont les inconvénients de l'utilisation du modèle ActiveRecord pour l'accès aux données / les objets métier. La seule à laquelle je peux penser du haut de ma tête est qu'elle viole le principe de responsabilité unique, mais le modèle de RA est assez commun …


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.