Nous avons une bibliothèque de classes qui va ouvrir un dialogue, est-ce une mauvaise idée de le faire?est-ce une mauvaise idée de faire apparaître une boîte de dialogue dans une bibliothèque de classes?
est-ce une mauvaise idée de faire apparaître une boîte de dialogue dans une bibliothèque de classes?
Répondre
Votre bibliothèque doit se lier au moins possible à d'autres bibliothèques pour atteindre l'objectif prévu. Sauf si votre bibliothèque est une sorte de bibliothèque gui, n'utilisez pas les boîtes de dialogue contextuelles.
Oui, c'est une mauvaise idée. Que se passe-t-il si un service Windows doit utiliser votre bibliothèque? Le seul scénario auquel je peux penser que ce serait OK est si la bibliothèque de classes est pour les composants d'affichage visuel et ne sera utilisée que dans ce contexte (c'est-à-dire ne contient que des boîtes de dialogue et des composants IU). Lors de l'écriture d'une bibliothèque de classes devant être utilisée dans de nombreux scénarios différents, vous ne voulez pas d'appel bloquant nécessitant une intervention humaine.
Vous pouvez être en mesure de savoir si la session est interactive ou non et faire un choix sur la création d'un popup, mais c'est un hack au mieux.
Les bibliothèques de classes sont destinées à consolider la logique métier et à réduire la duplication de code. Les dialogues doivent être affichés dans votre couche de présentation, où elle peut décider de la meilleure façon de le faire. Par exemple, si vous utilisez une bibliothèque de classes dans une application WinForm, cette boîte de dialogue sera différente de la boîte de dialogue affichée sur un site Web.
Cela dépend beaucoup. Si cette bibliothèque de classes contient beaucoup d'autres classes d'interface graphique, alors peut-être. Si cette bibliothèque contient des objets de domaine, cela semble être une mauvaise idée.
Je pense que c'est une mauvaise idée. Mais dans certains cas, vous pouvez rendre la logique de l'interface utilisateur réutilisable. Dans ce cas, essayez de retirer le code d'interaction utilisateur dans une bibliothèque séparée.
S'il s'agit d'une bibliothèque de classes pour afficher des boîtes de dialogue, alors oui. Pour tout autre type de bibliothèque de classes, alors non.
la bonne chose pour la bibliothèque à faire est de prendre des rappels comme "getInformationFromUser" ou "showError" ou quoi que ce soit. C'est ensuite à l'appelant de la bibliothèque de décider comment cela est fait. Ou pour signaler des erreurs, il doit déclencher une exception ou renvoyer un code d'erreur. Pour qu'une bibliothèque affiche la boîte de dialogue elle-même, elle doit faire un grand nombre de suppositions - que la bibliothèque est utilisée dans un programme GUI, quel cadre GUI est utilisé, quelle langue l'utilisateur comprend, etc. , faux faux.
Je dirais que c'est une mauvaise idée. Pour un exemple de classe de bibliothèque non-visuelle, jetez un oeil à QFile. Lors de son utilisation, il renvoie l'état d'erreur en tant que valeurs de retour (par exemple if (! Fichier.open (mode ...))), puis conserve la dernière erreur en tant qu'enum (http://doc.trolltech.com/4.6/qfile.html#error) et en tant qu'erreur lisible par l'utilisateur string (http://doc.trolltech.com/4.6/qiodevice.html#errorString) que votre application peut utiliser pour afficher facilement une boîte de dialogue, l'imprimer sur une console ou l'ajouter à un journal, etc.
Comme vous pouvez le voir, cette approche donne à l'application le pouvoir de décider comment gérer le message d'erreur - au lieu que la bibliothèque fasse ce qu'elle sent bon pour le moment.
Dans théorie, si c'est juste utilisé dans une application spécifique que vous savez sera utilisé uniquement avec une interface graphique, alors il n'y a pas de mal à cela.
Mais la dure réalité est que les bibliothèques auront tendance à devenir de plus en plus génériques et que vous en aurez besoin dans toutes sortes d'applications, pas seulement celles basées sur l'interface graphique. Donc, vous pourriez aussi bien planifier et interdire les boîtes de dialogue dans la bibliothèque et simplement gérer les rapports d'erreurs d'une autre manière.
Voici ce que je pense: Cela dépend de l'objectif principal de votre bibliothèque de classes si c'est un module d'interface utilisateur qui fournit certaines fonctionnalités de l'interface utilisateur, il devrait y avoir des boîtes de dialogue et des formulaires, etc. fournir certains services (business ou accès aux données) à d'autres parties de votre application, il ne devrait y avoir aucun élément d'interface utilisateur dans votre bibliothèque.
- 1. Est-ce une mauvaise idée?
- 2. Comment puis-je faire apparaître une boîte de dialogue d'impression en utilisant Javascript?
- 3. Est-ce une mauvaise idée d'avoir une table de propriétés dans une base de données?
- 4. Les emplacements de connexion multiples sont-ils une mauvaise idée?
- 5. Javascript de cliquer sur une URL et faire apparaître une boîte de dialogue ouvrir/enregistrer (sans nouvelle fenêtre)
- 6. tableau Dessin dans une boîte de dialogue
- 7. N'importe quel moyen de faire apparaître/disparaître des boîtes de dialogue avec une transition dans MFC?
- 8. CMFCRebar dans une boîte de dialogue
- 9. Une idée sur une bibliothèque d'accéléromètre iPhone?
- 10. La réflexion dans une classe de base est-elle une mauvaise idée de conception?
- 11. Venant d'un diagramme de classes dans une fenêtre de dialogue
- 12. actualise une image dans une boîte de dialogue jquery
- 13. Comment créer une boîte de dialogue dans une application iphone
- 14. Le verrouillage de l'objet demandé est-il une mauvaise idée?
- 15. Puis-je faire apparaître une boîte de dialogue de confirmation lorsque l'utilisateur ferme la fenêtre dans Safari/Chrome?
- 16. ListView ouvrir une boîte de dialogue (ou une boîte de dialogue d'alerte)
- 17. Référence ListView dans une bibliothèque de classes
- 18. spring.net utilisé dans une bibliothèque de classes
- 19. Le regroupement de votre code de vérification dans une méthode Ruby est-il une mauvaise idée?
- 20. Comment gérer une boîte de dialogue de confirmation de webview?
- 21. Ignorer une boîte de dialogue personnalisée?
- 22. Soumettre manuellement une boîte de dialogue Dojo
- 23. Utilisation d'un CAPTCHA dans une boîte de dialogue Boîte de dialogue jQuery UI
- 24. Paramétrer une boîte de dialogue jQuery
- 25. Une bonne boîte de dialogue "À propos"
- 26. Vous devez enregistrer une boîte de dialogue?
- 27. Retour à une boîte de dialogue spécifique
- 28. Rechercher une boîte de dialogue en C#?
- 29. Accrocher une boîte de dialogue commune
- 30. Comment imprimer une boîte de dialogue ou une fenêtre Qt?