{"id":34855,"date":"2019-10-31T22:00:51","date_gmt":"2019-10-31T19:00:51","guid":{"rendered":"https:\/\/prohoster.info\/blog\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik\/"},"modified":"2019-10-31T22:00:51","modified_gmt":"2019-10-31T19:00:51","slug":"10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","status":"publish","type":"post","link":"https:\/\/prohoster.info\/fr\/blog\/news\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","title":{"rendered":"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/129b610bc2576f8d753dfa72395f89f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nIl arrive assez souvent que je rencontre des d\u00e9veloppeurs qui n'ont pas entendu parler des principes SOLID (nous <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/442928\/\">en avons parl\u00e9 en d\u00e9tail ici<\/a><\/noindex>. \u2014 NDLR) ou de la programmation orient\u00e9e objet (POO), ou qui en ont entendu parler mais ne les utilisent pas en pratique. Cet article d\u00e9crit les avantages des principes de la POO qui aident le d\u00e9veloppeur dans son travail quotidien. Certains d'entre eux sont bien connus, d'autres moins, donc l'article sera utile tant aux d\u00e9butants qu'aux programmeurs exp\u00e9riment\u00e9s.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<blockquote><p><b>Rappelons-le :<\/b> <i>Pour tous les lecteurs de \u00ab Habr \u00bb \u2014 une remise de 10 000 roubles lors de l'inscription \u00e0 n'importe quel cours Skillbox avec le code promo \u00ab Habr \u00bb.<\/i><\/p>\n<p><b>Skillbox recommande :<\/b> Cours en ligne \u00e9ducatif <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/java\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=JAVDEV&amp;utm_content=articles&amp;utm_term=10oop\">\u00ab D\u00e9veloppeur Java \u00bb<\/a><\/noindex>.<\/p><\/blockquote>\n<p><\/p>\n<h3>DRY (Don't Repeat Yourself)<\/h3>\n<p>\nUn principe assez simple, dont la signification est claire \u00e0 partir du titre : \u00ab Ne te r\u00e9p\u00e8te pas \u00bb. Pour un d\u00e9veloppeur, cela signifie qu'il est n\u00e9cessaire d'\u00e9viter le code dupliqu\u00e9 et de pouvoir utiliser l'abstraction dans son travail.<\/p>\n<p>Si le code contient deux sections r\u00e9p\u00e9t\u00e9es, elles doivent \u00eatre combin\u00e9es en une seule m\u00e9thode. Si une valeur cod\u00e9e en dur est utilis\u00e9e plus d'une fois, elle doit \u00eatre convertie en une constante publique.<\/p>\n<p>Cela est n\u00e9cessaire pour simplifier le code et rendre son support plus facile, ce qui est l'objectif principal de la POO. Il ne faut pas non plus abuser des regroupements, car le m\u00eame code ne passera pas le test tant pour OrderId que pour SSN.<\/p>\n<h3>Encapsulation des changements<\/h3>\n<p>\nLes produits logiciels de la plupart des entreprises \u00e9voluent constamment. Cela signifie qu'il faut apporter des modifications au code, le maintenir. On peut se faciliter la vie gr\u00e2ce \u00e0 l'encapsulation. Cela permettra de tester et de maintenir plus efficacement la base de code existante. <noindex><a rel=\"nofollow\" href=\"http:\/\/javarevisited.blogspot.com\/2011\/12\/factory-design-pattern-java-example.html\">Voici un exemple<\/a><\/noindex>.<\/p>\n<p>Si vous codez en Java, alors <noindex><a rel=\"nofollow\" href=\"http:\/\/javarevisited.blogspot.sg\/2012\/03\/private-in-java-why-should-you-always.html#axzz559dyoLSA\">par d\u00e9faut, attribuez un acc\u00e8s private aux m\u00e9thodes et variables<\/a><\/noindex>.<\/p>\n<h3>Principe de l'ouverture\/fermeture<\/h3>\n<p>\nCe principe peut \u00eatre facilement m\u00e9moris\u00e9 en lisant la d\u00e9claration suivante : \u00ab Les entit\u00e9s logicielles (classes, modules, fonctions, etc.) doivent \u00eatre ouvertes \u00e0 l'extension, mais ferm\u00e9es \u00e0 la modification \u00bb. En pratique, cela signifie qu'elles peuvent permettre de changer leur comportement sans modifier le code source.<\/p>\n<p>Ce principe est important lorsque les modifications du code source n\u00e9cessitent une r\u00e9vision, des tests unitaires et d'autres proc\u00e9dures. Le code qui respecte le principe d'ouverture\/fermeture ne change pas lors de l'extension, donc il pose beaucoup moins de probl\u00e8mes.<\/p>\n<p>Voici un exemple de code qui enfreint ce principe.<\/p>\n<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/85d53972bef28713087acc428deebc3a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nSi des modifications sont n\u00e9cessaires, cela prendra beaucoup de temps, car il faudra changer tous les segments de code ayant un lien avec le fragment concern\u00e9.<\/p>\n<p>Au fait, la transparence et l'opacit\u00e9 sont l'un des principes SOLID.<\/p>\n<h3>Principe de responsabilit\u00e9 unique (SRP)<\/h3>\n<p>\nUn autre principe du jeu de r\u00e8gles SOLID. Il stipule qu'il n'y a qu'une seule raison de modifier une classe. Une classe ne traite qu'un seul probl\u00e8me. Elle peut avoir plusieurs m\u00e9thodes, mais chacune d'elles ne sert qu'\u00e0 r\u00e9soudre le probl\u00e8me global. Toutes les m\u00e9thodes et propri\u00e9t\u00e9s doivent uniquement servir cela. <\/p>\n<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/7332d424f27e091192cbbb8dacb13d01.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nLa valeur de ce principe r\u00e9side dans le fait qu'il r\u00e9duit la d\u00e9pendance entre diff\u00e9rents composants du logiciel et le code. Si l'on ajoute plus d'une fonctionnalit\u00e9 \u00e0 une classe, cela introduit un lien entre deux fonctions. Ainsi, si l'une d'elles est modifi\u00e9e, il y a un grand risque de d\u00e9truire l'autre, li\u00e9e \u00e0 la premi\u00e8re. Cela signifie une augmentation des cycles de test pour identifier tous les probl\u00e8mes \u00e0 l'avance.<\/p>\n<h3>Principe d'inversion des d\u00e9pendances (DIP)<\/h3>\n<p>\n<img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/eb1e09cceee028f88fa83fd8d30a189a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nL'exemple de code ci-dessus montre que AppManager d\u00e9pend de EventLogWriter, qui est lui-m\u00eame \u00e9troitement li\u00e9 \u00e0 AppManager. Si un autre moyen de montrer des notifications est n\u00e9cessaire, que ce soit par push, SMS ou email, il faut modifier la classe AppManager.<\/p>\n<p>Le probl\u00e8me peut \u00eatre r\u00e9solu gr\u00e2ce au DIP. Ainsi, au lieu de AppManager, nous demandons EventLogWriter, qui sera r\u00e9alis\u00e9 \u00e0 l'aide du framework.<\/p>\n<p>Le DIP permet de remplacer facilement des modules individuels par d'autres, en modifiant le module de d\u00e9pendance. Cela permet de changer un module sans affecter les autres.<\/p>\n<h3>Composition plut\u00f4t qu'h\u00e9ritage<\/h3>\n<p>\n<img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/b97ebf8c423f415298dc10ae4e14fe89.jpg\" style=\"display:block;margin: 0 auto;\" \/>Il existe deux principales fa\u00e7ons de r\u00e9utiliser du code \u2014 l'h\u00e9ritage et la composition, chacune ayant ses propres avantages et inconv\u00e9nients. En g\u00e9n\u00e9ral, la composition est pr\u00e9f\u00e9r\u00e9e car elle est plus flexible.<\/p>\n<p>La composition permet de modifier le comportement d'une classe \u00e0 l'ex\u00e9cution en configurant ses propri\u00e9t\u00e9s. Le polymorphisme est utilis\u00e9 lors de l'impl\u00e9mentation des interfaces, ce qui offre une r\u00e9alisation plus flexible.<\/p>\n<p>M\u00eame \"Effective Java\" de Joshua Bloch conseille de privil\u00e9gier la composition plut\u00f4t que l'h\u00e9ritage.<\/p>\n<h3>Principe de substitution de Barbara Liskov (LSP)<\/h3>\n<p>\nUn autre principe de l'outil SOLID. Il stipule que les sous-types doivent \u00eatre substituables pour le supertype. Autrement dit, les m\u00e9thodes et fonctions qui fonctionnent avec la superclasse doivent pouvoir fonctionner sans probl\u00e8me avec ses sous-classes.<\/p>\n<p>Le LSP est li\u00e9 \u00e0 la fois au principe de responsabilit\u00e9 unique et au principe de s\u00e9paration des responsabilit\u00e9s. Si une classe offre plus de fonctionnalit\u00e9s qu'une sous-classe, cette derni\u00e8re ne prendra pas en charge certaines fonctions, compromettant ce principe.<\/p>\n<p>Voici un extrait de code qui contrevient au LSP.<\/p>\n<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/8c412a2cb4d1f7e53f69afc4ef46a967.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nLa m\u00e9thode area(Rectangle r) calcule l'aire du Rectangle. Le programme \u00e9chouera apr\u00e8s l'ex\u00e9cution de Square, car Square n'est pas un Rectangle ici. Selon le principe LSP, les fonctions qui utilisent des r\u00e9f\u00e9rences \u00e0 des classes de base doivent pouvoir utiliser des objets de classes d\u00e9riv\u00e9es sans instructions suppl\u00e9mentaires.<\/p>\n<p>Ce principe, qui est une d\u00e9finition sp\u00e9cifique du sous-type, a \u00e9t\u00e9 propos\u00e9 par Barbara Liskov en 1987 lors d'une conf\u00e9rence dans un discours principal intitul\u00e9 \u00ab Abstraction des donn\u00e9es et hi\u00e9rarchie \u00bb \u2013 d'o\u00f9 son nom.<\/p>\n<h3>Principe de s\u00e9paration des interfaces (ISP)<\/h3>\n<p>\nUn autre principe SOLID. Selon lui, une interface qui n'est pas utilis\u00e9e ne doit pas \u00eatre impl\u00e9ment\u00e9e. Respecter ce principe aide le syst\u00e8me \u00e0 rester flexible et adapt\u00e9 au refactoring lors de modifications de la logique de fonctionnement.<\/p>\n<p>Cette situation se produit le plus souvent lorsque l'interface contient plusieurs fonctionnalit\u00e9s et que le client n'en a besoin que d'une seule.<\/p>\n<p>\u00c9tant donn\u00e9 que la r\u00e9daction d'une interface est une t\u00e2che complexe, il sera probl\u00e9matique de la modifier apr\u00e8s son ach\u00e8vement sans rien compromettre.<\/p>\n<p>L'avantage du principe ISP en Java est qu'il faut d'abord impl\u00e9menter toutes les m\u00e9thodes, et seulement ensuite elles peuvent \u00eatre utilis\u00e9es par des classes. Ainsi, le principe permet de r\u00e9duire le nombre de m\u00e9thodes.<\/p>\n<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/ea3e314e9f7766e8c1d3ce46d0dcdc09.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h3>Programmer pour l'interface, et non pour l'impl\u00e9mentation<\/h3>\n<p>\nTout est clair dans le nom. L'application de ce principe conduit \u00e0 la cr\u00e9ation d'un code flexible qui pourra fonctionner avec toute nouvelle impl\u00e9mentation de l'interface.<\/p>\n<p>Il convient d'utiliser le type d'interface pour les variables, les types de retour ou le type des arguments de m\u00e9thode. Exemple : utilisation de SuperClass plut\u00f4t que SubClass.<\/p>\n<p>C'est-\u00e0-dire :<\/p>\n<p><i>List numbers = getNumbers();<\/i><\/p>\n<p>Pas :<\/p>\n<p><i>ArrayList numbers = getNumbers();<\/i><\/p>\n<p>Voici une mise en \u0153uvre pratique de ce qui a \u00e9t\u00e9 dit ci-dessus.<\/p>\n<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/8bbcd8342a9870bc28272f0550a8664c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h3>Principe de d\u00e9l\u00e9gation<\/h3>\n<p>\nUn exemple courant est les m\u00e9thodes equals() et hashCode() en Java. Lorsqu'il est n\u00e9cessaire de comparer deux objets, cette action est d\u00e9l\u00e9gu\u00e9e \u00e0 la classe appropri\u00e9e plut\u00f4t qu'au client.<\/p>\n<p>L'avantage de ce principe est l'absence de duplication de code et un changement de comportement relativement simple. Il est \u00e9galement applicable \u00e0 la d\u00e9l\u00e9gation des \u00e9v\u00e9nements.<\/p>\n<p><img decoding=\"async\" alt=\"10 principes de la programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre\" src=\"\/wp-content\/uploads\/2019\/06\/c9ca40cb27e288e5e31ebfba76fa36a5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <br \/>\nTous ces principes permettent d'\u00e9crire un code plus flexible, \u00e9l\u00e9gant et fiable, avec une forte coh\u00e9sion et un faible couplage. Bien s\u00fbr, la th\u00e9orie est importante, mais pour qu'un d\u00e9veloppeur commence r\u00e9ellement \u00e0 utiliser ces connaissances, il faut de la pratique. L'\u00e9tape suivante apr\u00e8s la ma\u00eetrise des principes de la POO peut \u00eatre l'\u00e9tude des mod\u00e8les de conception pour r\u00e9soudre des probl\u00e8mes communs de d\u00e9veloppement de logiciels.<\/p>\n<blockquote><p><b>Skillbox recommande :<\/b><\/p>\n<ul>\n<li>Cours pratique <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/agima\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=AGIMA&amp;utm_content=articles&amp;utm_term=10oop\">\u00ab D\u00e9veloppeur mobile PRO \u00bb<\/a><\/noindex>.<\/li>\n<li>Cours en ligne appliqu\u00e9 <noindex><a rel=\"nofollow\" href=\"https:\/\/skillbox.ru\/python-data\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=PTNANA&amp;utm_content=articles&amp;utm_term=10oop\">\u00ab Analyste de donn\u00e9es sur Python \u00bb<\/a><\/noindex>.<\/li>\n<li>Cours pratique de deux ans <noindex><a rel=\"nofollow\" href=\"https:\/\/iamwebdev.skillbox.ru\/?utm_source=skillbox.media&amp;utm_medium=habr.com&amp;utm_campaign=WEBDEVPRO&amp;utm_content=articles&amp;utm_term=10oop\">\u00ab Je suis D\u00e9veloppeur Web PRO \u00bb<\/a><\/noindex>.<\/li>\n<\/ul>\n<\/blockquote>\n<p>Source : <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/skillbox\/blog\/454314\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043d\u0435 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0447\u0430\u0441\u0442\u043e \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u044e\u0442\u0441\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438 \u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0430\u0445 SOLID (\u043c\u044b \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u043b\u0438 \u043e \u043d\u0438\u0445 \u0437\u0434\u0435\u0441\u044c. \u2014 \u041f\u0435\u0440.) \u0438\u043b\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u041e\u041e\u041f), \u0438\u043b\u0438 \u0441\u043b\u044b\u0448\u0430\u043b\u0438, \u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0438\u0445 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u041e\u041e\u041f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0432 \u0435\u0433\u043e \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u043c \u0442\u0440\u0443\u0434\u0435. \u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0445\u043e\u0440\u043e\u0448\u043e \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b, \u0434\u0440\u0443\u0433\u0438\u0435 \u2014 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c, \u0442\u0430\u043a [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26244,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34855","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/fr\/blog\/news\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd4710 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/fr\/blog\/news\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:00:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd4710 principes de programmation orient\u00e9e objet que chaque d\u00e9veloppeur doit conna\u00eetre | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd4710 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043d\u043e-\u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u043d\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a | ProHoster","og:url":"https:\/\/prohoster.info\/fr\/blog\/news\/10-printsipov-obektno-orientirovannogo-programmirovaniya-o-kotoryh-dolzhen-znat-kazhdyj-razrabotchik","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:00:51+00:00","article:modified_time":"2019-10-31T19:00:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34855","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:51:32","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:14:05","updated":"2026-01-21 20:51:32","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/34855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=34855"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/34855\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media\/26244"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=34855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=34855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=34855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}