Les objets d'accès aux données sont-ils une exception à la règle "Tell, does not ask"? Par exemple, obtenez les 10 derniers messages d'une passerelle de données de table?accès aux données: exception à 'Tell, does not ask'?
Répondre
Un summary de Tell Do not Ask dit:
« vous devriez essayer de dire des objets que vous voulez qu'ils fassent, ne les posez pas de questions au sujet de leur état, de prendre une décision, puis leur dire ce que faire."
Dans le cas de demander un objet de données pour l'information, je ne pense pas que nous violons ce principe. Envisagez d'afficher un rapport ou une interface utilisateur avec des informations "Personne". Je ne vois pas beaucoup d'alternative à dire "Quel est votre nom?" Notez que nous n'effectuons aucun suivi en leur disant "que faire". Techniquement, ne leur dites-vous pas de vous dire quelque chose à propos d'eux-mêmes quand vous leur posez des questions sur eux-mêmes?
POO me donne un mal de tête parfois, je ne suis jamais sûr quand arrêter de penser et de commencer à écrire, ou d'arrêter d'écrire et de commencer à penser: X
- 1. bon cas pour Tell, Do not Ask
- 2. iPhone App Accès aux données
- 3. Accès aux données Test d'intégration ... comment le faites-vous?
- 4. Accès aux données avec des procédures stockées
- 5. System.Drawing.Graphics.DrawString - Exception "Parameter is not valid"
- 6. C# Accès aux données dans System.Object []
- 7. Conseils d'architecture: logique métier/accès aux données
- 8. Accès aux données JS à partir de PHP
- 9. Accès aux données spatiales PostGIS à partir de Rails
- 10. SPFarm.Local.Solutions.Add - Exception - "Accès refusé"
- 11. accès aux paramètres POST
- 12. Accès aux propriétés de cellule dans les numéros iWork
- 13. Accès aux partages réseau
- 14. Accès aux objets Json
- 15. Accès aux listes d'images
- 16. Services Web et accès simultané aux bases de données
- 17. Meilleures pratiques - Swing, accès aux bases de données
- 18. Client JAVA Swing, accès aux données à la base de données distante; Ibatis
- 19. Accès aux données post DWR dans un printemps Interceptor
- 20. AS3: Extension de la classe Dictionary - Accès aux données stockées
- 21. Accès aux membres de l'application?
- 22. Accès aux arguments non définis
- 23. Accès direct aux cellules TableLayoutPanel
- 24. Accès aux associations dans Rails
- 25. Accès aux ressources incorporées dans IronPython
- 26. WPF Listview Accès à SelectedItem et aux sous-éléments
- 27. iPhone - accès aux informations de position à partir d'une photo
- 28. Accès aux objets imbriqués dans Json
- 29. Exception "Lambda Parameter not in scope" à l'aide de la méthode Single de SimpleRepository
- 30. Collections .NET et accès aux méthodes d'objets
Dans ce cas, vérifiez si votre question demande nécessiterait l'objet lui-même changer. On nous déconseille de rompre l'encapsulation de cet état interne et de ses relations. Par exemple, supposons qu'une classe d'employés a un salaire, des unités vendues ce mois-ci et une commission. Nous ne nous interrogeons pas sur le salaire et les ventes et ne fixons pas la commission - nous nous attendons à ce que l'employé s'en occupe et réponde à des questions telles que «quelle est la commission? – djna
Oh, et quand commencer et arrêter de penser ... Je pense que cela a tendance à venir avec l'expérience. Souvent, la perspicacité vient quand vous essayez de maintenir le code que vous avez écrit il y a un moment - aha! si seulement j'avais pensé mieux alors! – djna
J'ai commencé à le remarquer moi-même. – Sneakyness