{"id":4129,"date":"2025-03-24T09:26:48","date_gmt":"2025-03-24T06:26:48","guid":{"rendered":"https:\/\/demensdeum.com\/blog\/2025\/03\/24\/builder-pattern-timed-construction\/"},"modified":"2025-03-25T00:54:07","modified_gmt":"2025-03-24T21:54:07","slug":"builder-pattern-timed-construction","status":"publish","type":"post","link":"https:\/\/demensdeum.com\/blog\/fr\/2025\/03\/24\/builder-pattern-timed-construction\/","title":{"rendered":"Mod\u00e8le du g\u00e9n\u00e9rateur: en phase de cr\u00e9ation d&#8217;un objet dans le temps"},"content":{"rendered":"<p>Introduction<\/p>\n<p>Le dernier article a examin\u00e9 le cas g\u00e9n\u00e9ral de l&#8217;utilisation du motif du constructeur, mais l&#8217;option n&#8217;a pas \u00e9t\u00e9 touch\u00e9e lorsque l&#8217;objet est cr\u00e9\u00e9 par \u00e9tapes dans le temps.<br \/>\nBuilder Pattern (Builder) est un mod\u00e8le de conception g\u00e9n\u00e9rateur qui vous permet de cr\u00e9er progressivement des objets complexes. Il est particuli\u00e8rement utile lorsque l&#8217;objet a de nombreux param\u00e8tres ou diverses configurations. L&#8217;un des exemples int\u00e9ressants de son utilisation est la possibilit\u00e9 de s\u00e9parer le processus de cr\u00e9ation d&#8217;un objet dans le temps.<br \/>\nParfois, l&#8217;objet ne peut pas \u00eatre cr\u00e9\u00e9 imm\u00e9diatement &#8211; ses param\u00e8tres peuvent \u00eatre connus \u00e0 diff\u00e9rentes \u00e9tapes du programme.<\/p>\n<p>Un exemple sur Python<\/p>\n<p>Dans cet exemple, l&#8217;objet de la voiture est cr\u00e9\u00e9 par \u00e9tapes: d&#8217;abord, une partie des donn\u00e9es est charg\u00e9e \u00e0 partir du serveur, puis l&#8217;utilisateur entre les informations manquantes.<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code>import requests\n\ndef fetch_car_data():\n    response = requests.get(\"https:\/\/api.example.com\/car-info\")\n    return response.json()\n\nbuilder = CarBuilder()\n\n# Backend API data\ncar_data = fetch_car_data()\nbuilder.set_model(car_data[\"model\"])\nbuilder.set_year(car_data[\"year\"])\n\n# User input\ncolor = input(\"Car color: \")\nbuilder.set_color(color)\n\ngps_option = input(\"GPS feature? (yes\/no): \").lower() == \"yes\"\nbuilder.set_gps(gps_option)\n\ncar = builder.build()\nprint(car)\n<\/code><\/pre>\n<\/div>\n<p>Imaginez un appel API, la saisie de donn\u00e9es se produit dans diff\u00e9rentes parties de l&#8217;application, ou m\u00eame dans diff\u00e9rentes biblioth\u00e8ques. Ensuite, l&#8217;utilisation du motif du constructeur devient plus \u00e9vidente que dans un exemple simple ci-dessus.<\/p>\n<p>Avantages<\/p>\n<p>&#8211; La sortie est une structure immunitaire qui n&#8217;a pas besoin de stocker des donn\u00e9es facultatives pour l&#8217;assemblage temporaire<br \/>\n&#8211; L&#8217;objet est collect\u00e9 progressivement<br \/>\n&#8211; \u00c9viter des concepteurs complexes<br \/>\n&#8211; Le code d&#8217;assemblage de l&#8217;objet n&#8217;est pas incomp\u00e9tent uniquement dans une essence de constructeur<br \/>\n&#8211; commodit\u00e9 de comprendre le code<\/p>\n<p>Sources<\/p>\n<p><a href=\"https:\/\/www.amazon.com\/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook\/dp\/B000SEIBB8\" rel=\"noopener\" target=\"_blank\">https:\/\/www.amazon.com\/Design-Patterns-Object-Oriented-Addison-Wesley-Professional-ebook\/dp\/B000SEIBB8<\/a><br \/>\n<a href=\"https:\/\/demensdeum.com\/blog\/2019\/09\/23\/builder-pattern\/\" rel=\"noopener\" target=\"_blank\">https:\/\/demensdeum.com\/blog\/2019\/09\/23\/builder-pattern\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Le dernier article a examin\u00e9 le cas g\u00e9n\u00e9ral de l&#8217;utilisation du motif du constructeur, mais l&#8217;option n&#8217;a pas \u00e9t\u00e9 touch\u00e9e lorsque l&#8217;objet est cr\u00e9\u00e9 par \u00e9tapes dans le temps. Builder Pattern (Builder) est un mod\u00e8le de conception g\u00e9n\u00e9rateur qui vous permet de cr\u00e9er progressivement des objets complexes. Il est particuli\u00e8rement utile lorsque l&#8217;objet a<a class=\"more-link\" href=\"https:\/\/demensdeum.com\/blog\/fr\/2025\/03\/24\/builder-pattern-timed-construction\/\">Continue reading <span class=\"screen-reader-text\">&#8220;Mod\u00e8le du g\u00e9n\u00e9rateur: en phase de cr\u00e9ation d&#8217;un objet dans le temps&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[49],"tags":[],"class_list":["post-4129","post","type-post","status-publish","format-standard","hentry","category-blog","entry"],"translation":{"provider":"WPGlobus","version":"3.0.2","language":"fr","enabled_languages":["en","ru","zh","de","fr","ja","pt"],"languages":{"en":{"title":true,"content":true,"excerpt":false},"ru":{"title":true,"content":true,"excerpt":false},"zh":{"title":true,"content":true,"excerpt":false},"de":{"title":true,"content":true,"excerpt":false},"fr":{"title":true,"content":true,"excerpt":false},"ja":{"title":true,"content":true,"excerpt":false},"pt":{"title":true,"content":true,"excerpt":false}}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/4129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/comments?post=4129"}],"version-history":[{"count":13,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/4129\/revisions"}],"predecessor-version":[{"id":4142,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/posts\/4129\/revisions\/4142"}],"wp:attachment":[{"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/media?parent=4129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/categories?post=4129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/demensdeum.com\/blog\/fr\/wp-json\/wp\/v2\/tags?post=4129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}