L'orienté objet, c'est intéressant quand tu manipules des données complexe, quand tu fais de la modélisation, quand tu fais des architectures logicielles, cf les "design patterns" qui fournissent des solutions génériques en objet à des problèmes communs et qui évitent de réinventer la roue.
Ce qui est particulièrement intéressant en objet c'est le côté : tu modélise tes données, tu as déja une partie de ton appli architecturée. Le modèle de données est écrit dans le code, c'est structuré : tu as les données et le code qui permet de les manipuler dans une seule classe. Tu me diras tu fais un package en procédural c'est la même chose. Mais quand tu codes avec un IDE, quand tu tapes le nom de ton objet, l'ide connait son type et te propose les méthodes que tu peux appeler c'est bien agréable. En bref ça facilite la vie du modélisateur/concepteur, du mec qui veut rentrer dans le code, des générateurs de code à partir de modèles, des codeurs d'ide, des codeurs tout court, etc. Tout ça parce que le code est plus "informatif" sémantiquement que du code procédural.
Et le fait que ce soit une appli web côté serveur n'influe pas beaucoup, ça dépend surtout de à quoi sert l'appli.
Le truc des interfaces graphiques c'est que l'objet colle parfaitement : un "bouton" <-> un objet. Un clic sur le bouton, ou sur un autre objet graphique <-> appel de la méthode dédiée. Mais ça veut pas dire que l'objet ne sert à rien sur des modèles moins "visuels" : une usine avec des employés, des machines, des salaires, des employés qui sont affectés à des machines, tu as facilement les classes de ton modèle.
Un truc pas mal aussi à mon avis : dans certaines API genre l'API java, la cohérence quand c'est bien conçu : n'importe quelle collection d'objet hérite de la classe collection, que tu manipule un vecteur d'objet, une liste d'objet, ou autre. Les méthodes sont les mêmes, les collections sont interchangeables.
Tu aimes bien le fonctionnel, un des points forts du fonctionnel selon moi c'est la généricité : fonctions d'ordre supérieur, etc.
En objet, tu as de la généricité aussi, de manière différente, plus évidente à capter question utilisation : l'héritage, l'implémentation de méthode virtuelle, par exemple. Entre autre.
[^] # Re: Incompatibilités ?
Posté par thoasm . En réponse à la dépêche L'arrêt du support de PHP4 annoncé. Évalué à 5.
Ce qui est particulièrement intéressant en objet c'est le côté : tu modélise tes données, tu as déja une partie de ton appli architecturée. Le modèle de données est écrit dans le code, c'est structuré : tu as les données et le code qui permet de les manipuler dans une seule classe. Tu me diras tu fais un package en procédural c'est la même chose. Mais quand tu codes avec un IDE, quand tu tapes le nom de ton objet, l'ide connait son type et te propose les méthodes que tu peux appeler c'est bien agréable. En bref ça facilite la vie du modélisateur/concepteur, du mec qui veut rentrer dans le code, des générateurs de code à partir de modèles, des codeurs d'ide, des codeurs tout court, etc. Tout ça parce que le code est plus "informatif" sémantiquement que du code procédural.
Et le fait que ce soit une appli web côté serveur n'influe pas beaucoup, ça dépend surtout de à quoi sert l'appli.
Le truc des interfaces graphiques c'est que l'objet colle parfaitement : un "bouton" <-> un objet. Un clic sur le bouton, ou sur un autre objet graphique <-> appel de la méthode dédiée. Mais ça veut pas dire que l'objet ne sert à rien sur des modèles moins "visuels" : une usine avec des employés, des machines, des salaires, des employés qui sont affectés à des machines, tu as facilement les classes de ton modèle.
Un truc pas mal aussi à mon avis : dans certaines API genre l'API java, la cohérence quand c'est bien conçu : n'importe quelle collection d'objet hérite de la classe collection, que tu manipule un vecteur d'objet, une liste d'objet, ou autre. Les méthodes sont les mêmes, les collections sont interchangeables.
Tu aimes bien le fonctionnel, un des points forts du fonctionnel selon moi c'est la généricité : fonctions d'ordre supérieur, etc.
En objet, tu as de la généricité aussi, de manière différente, plus évidente à capter question utilisation : l'héritage, l'implémentation de méthode virtuelle, par exemple. Entre autre.