{"id":215,"date":"2020-10-05T08:02:54","date_gmt":"2020-10-05T08:02:54","guid":{"rendered":"https:\/\/turtleflyblog.com\/?p=215"},"modified":"2022-02-28T09:47:34","modified_gmt":"2022-02-28T09:47:34","slug":"solid-dip-2","status":"publish","type":"post","link":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/","title":{"rendered":"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09"},"content":{"rendered":"\n

\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247<\/strong>(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002<\/p>\n\n\n\n

\u5b9a\u7fa9:<\/strong><\/p>\n\n\n\n

\u9ad8\u5c64\u6b21\u7684\u6a21\u7d44\u4e0d\u61c9\u8a72\u4f9d\u8cf4\u65bc\u4f4e\u5c64\u6b21\u7684\u6a21\u7d44\uff0c\u5169\u8005\u90fd\u61c9\u8a72\u4f9d\u8cf4\u65bc\u62bd\u8c61\u4ecb\u9762\u3002<\/p>\n\n\n\n

\u62bd\u8c61\u4ecb\u9762\u4e0d\u61c9\u8a72\u4f9d\u8cf4\u65bc\u7d30\u7bc0\u3002\u800c\u7d30\u7bc0\u5247\u61c9\u8a72\u4f9d\u8cf4\u65bc\u62bd\u8c61\u4ecb\u9762\u3002<\/p>\n\n\n\n

High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions<\/em><\/p>\n\n\n\n

\u89e3\u91cb:<\/strong> \u8207\u5176\u5177\u9ad4\u7684\u6307\u660e\u7269\u4ef6\u95dc\u4fc2\uff0c\u4e0d\u5982\u62bd\u8c61\u89c0\u5ff5\u66ff\u4ee3<\/p>\n\n\n\n

\u4f8b\u5b50:<\/strong> \u5047\u5982\u4f60\u4eca\u5929\u4e0b\u73ed\u5f8c\u5230\u4e00\u5bb6\u9910\u5ef3\u7528\u9910\uff0c\u4f60\u5148\u9078\u64c7\u5403\u8766\u4ec1\u7092\u98ef(\u5177\u9ad4<\/strong>)\uff0c\u4f46\u670d\u52d9\u751f\u544a\u8a34\u4f60\u8766\u4ec1\u7092\u98ef\u5df2\u8ce3\u5b8c\u3002\u6240\u4ee5\u70ba\u4e86\u9810\u9632\u9019\u7a2e\u60c5\u6cc1\u767c\u751f\uff0c\u4f60\u61c9\u8a72\u9078\u64c7\u5176\u5b83\u9910\u9ede(\u62bd\u8c61<\/strong>)\u3002\u9019\u6a23\u4f60\u7684\u665a\u9910\u9078\u64c7\u6027\u5c31\u591a\u4e86\u3002<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u7a0b\u5f0f\u78bc\u7bc4\u4f8b:<\/strong><\/p>\n\n\n\n

\u5728C#\u7bc4\u4f8b\u88e1\uff0c\u6211\u5011\u7528Unity\u5957\u4ef6\u5e6b\u6211\u7528IOC\u5bb9\u5668\u6982\u5ff5\u5be6\u73feDIP\u539f\u5247\u3002<\/p>\n\n\n\n

\u63a7\u5236\u53cd\u8f49\uff08IoC\uff09\uff1a\u672c\u540d\u70ba<\/strong>Inversion Of Control\uff0c\u4e5f\u5c31\u662f\u61c9\u7528\u7a0b\u5f0f\u628a\u7269\u4ef6\u7684\u5efa\u7acb\u548c\u7dad\u8b77\u6b0a\u4ea4\u7d66\u5916\u90e8\u5bb9\u5668(Unity)\u4f86\u5be6\u4f5c\u548c\u8ca0\u8cac\uff0c\u4e5f\u5c31\u662f\u63a7\u5236\u6b0a\u8f49\u79fb\u5230\u5916\u90e8IoC\u5bb9\u5668\u8ca0\u8cac<\/p>\n\n\n\n

\u4f9d\u8cf4\u6ce8\u5165(DI):<\/strong> \u672c\u540d\u70baDependency Injection\u5247\u70ba\u5be6\u73feIoC\u7684\u65b9\u6cd5\u3002<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u5efa\u7acb\u4ecb\u9762<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u5be6\u4f5c\u4ecb\u9762(\u725b\u8089\u9eb5\u548c\u8766\u4ec1\u7092\u98ef)<\/p>\n\n\n\n

\u8766\u4ec1\u7092\u98ef<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u725b\u8089\u9eb5<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u4e3b\u63a7\u53f0\u90e8\u5206<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u57f7\u884c\u7d50\u679c<\/p>\n\n\n\n

\"This<\/figure>\n\n\n\n

\u7d50\u8a9e:<\/strong><\/p>\n\n\n\n

DIP\u4e3b\u8981\u76ee\u7684\u662f\u9054\u6210loose coupling\u300c\u5bec\u9b06\u8026\u5408<\/strong>\u300d\u3002<\/strong>\u8a66\u60f3\u4f60\u5982\u679c\u628a\u5177\u9ad4\u985e\u5225\u5beb\u6b7b\uff0c\u4ee5\u5f8c\u5982\u679c\u4f60\u8981\u505a\u55ae\u5143\u6e2c\u8a66\uff0c\u90a3\u5c31\u8981\u70ba\u6bcf\u500b\u5177\u9ad4\u985e\u5225\u5404\u5225\u505a\u55ae\u5143\u6e2c\u8a66\u3002\u5982\u679c\u6539\u7528DIP\u548cunity\u5957\u4ef6\uff0c\u5c31\u7121\u9700\u5982\u6b64\u4e14\u53ef\u589e\u52a0\u7a0b\u5f0f\u78bc\u7684\u53ef\u7dad\u8b77\u6027\u3002<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"

\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002 \u5b9a\u7fa9: \u9ad8\u5c64\u6b21\u7684\u6a21\u7d44\u4e0d\u61c9\u8a72\u4f9d\u8cf4\u65bc\u4f4e\u5c64\u6b21\u7684\u6a21\u7d44\uff0c\u5169\u8005\u90fd\u61c9\u8a72\u4f9d\u8cf4\u65bc\u62bd\u8c61\u4ecb\u9762\u3002 \u62bd\u8c61\u4ecb\u9762\u4e0d\u61c9\u8a72\u4f9d\u8cf4\u65bc\u7d30\u7bc0\u3002\u800c\u7d30\u7bc0\u5247\u61c9\u8a72\u4f9d\u8cf4\u65bc\u62bd\u8c61\u4ecb\u9762\u3002 High level modules should not depend upon low level modules. Both should depend upon abstractions. Abstractions should not depend upon details. Details should depend upon abstractions \u89e3\u91cb: \u8207\u5176\u5177\u9ad4\u7684\u6307\u660e\u7269\u4ef6\u95dc\u4fc2\uff0c\u4e0d\u5982\u62bd\u8c61\u89c0\u5ff5\u66ff\u4ee3 \u4f8b\u5b50: \u5047\u5982\u4f60\u4eca\u5929\u4e0b\u73ed\u5f8c\u5230\u4e00\u5bb6\u9910\u5ef3\u7528\u9910\uff0c\u4f60\u5148\u9078\u64c7\u5403\u8766\u4ec1\u7092\u98ef(\u5177\u9ad4)\uff0c\u4f46\u670d\u52d9\u751f\u544a\u8a34\u4f60\u8766\u4ec1\u7092\u98ef\u5df2\u8ce3\u5b8c\u3002\u6240\u4ee5\u70ba\u4e86\u9810\u9632\u9019\u7a2e\u60c5\u6cc1\u767c\u751f\uff0c\u4f60\u61c9\u8a72\u9078\u64c7\u5176\u5b83\u9910\u9ede(\u62bd\u8c61)\u3002\u9019\u6a23\u4f60\u7684\u665a\u9910\u9078\u64c7\u6027\u5c31\u591a\u4e86\u3002 \u7a0b\u5f0f\u78bc\u7bc4\u4f8b: \u5728C#\u7bc4\u4f8b\u88e1\uff0c\u6211\u5011\u7528Unity\u5957\u4ef6\u5e6b\u6211\u7528IOC\u5bb9\u5668\u6982\u5ff5\u5be6\u73feDIP\u539f\u5247\u3002 \u63a7\u5236\u53cd\u8f49\uff08IoC\uff09\uff1a\u672c\u540d\u70baInversion Of Control\uff0c\u4e5f\u5c31\u662f\u61c9\u7528\u7a0b\u5f0f\u628a\u7269\u4ef6\u7684\u5efa\u7acb\u548c\u7dad\u8b77\u6b0a\u4ea4\u7d66\u5916\u90e8\u5bb9\u5668(Unity)\u4f86\u5be6\u4f5c\u548c\u8ca0\u8cac\uff0c\u4e5f\u5c31\u662f\u63a7\u5236\u6b0a\u8f49\u79fb\u5230\u5916\u90e8IoC\u5bb9\u5668\u8ca0\u8cac \u4f9d\u8cf4\u6ce8\u5165(DI): \u672c\u540d\u70baDependency Injection\u5247\u70ba\u5be6\u73feIoC\u7684\u65b9\u6cd5\u3002 \u5efa\u7acb\u4ecb\u9762 \u5be6\u4f5c\u4ecb\u9762(\u725b\u8089\u9eb5\u548c\u8766\u4ec1\u7092\u98ef) \u8766\u4ec1\u7092\u98ef \u725b\u8089\u9eb5 \u4e3b\u63a7\u53f0\u90e8\u5206 \u57f7\u884c\u7d50\u679c \u7d50\u8a9e: DIP\u4e3b\u8981\u76ee\u7684\u662f\u9054\u6210loose coupling\u300c\u5bec\u9b06\u8026\u5408\u300d\u3002\u8a66\u60f3\u4f60\u5982\u679c\u628a\u5177\u9ad4\u985e\u5225\u5beb\u6b7b\uff0c\u4ee5\u5f8c\u5982\u679c\u4f60\u8981\u505a\u55ae\u5143\u6e2c\u8a66\uff0c\u90a3\u5c31\u8981\u70ba\u6bcf\u500b\u5177\u9ad4\u985e\u5225\u5404\u5225\u505a\u55ae\u5143\u6e2c\u8a66\u3002\u5982\u679c\u6539\u7528DIP\u548cunity\u5957\u4ef6\uff0c\u5c31\u7121\u9700\u5982\u6b64\u4e14\u53ef\u589e\u52a0\u7a0b\u5f0f\u78bc\u7684\u53ef\u7dad\u8b77\u6027\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[35],"tags":[],"class_list":["post-215","post","type-post","status-publish","format-standard","hentry","category--zh"],"yoast_head":"\nSOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09 - Who said turtle cannot fly<\/title>\n<meta name=\"description\" content=\"\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09 - Who said turtle cannot fly\" \/>\n<meta property=\"og:description\" content=\"\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Who said turtle cannot fly\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-05T08:02:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-02-28T09:47:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png\" \/>\n<meta name=\"author\" content=\"Joseph\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joseph\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/\",\"url\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/\",\"name\":\"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09 - Who said turtle cannot fly\",\"isPartOf\":{\"@id\":\"https:\/\/turtleflyblog.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png\",\"datePublished\":\"2020-10-05T08:02:54+00:00\",\"dateModified\":\"2022-02-28T09:47:34+00:00\",\"author\":{\"@id\":\"https:\/\/turtleflyblog.com\/#\/schema\/person\/130c2e1bdce4a8ba27bfe14c65988172\"},\"description\":\"\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#breadcrumb\"},\"inLanguage\":\"en-AU\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png?fit=512%2C373&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png?fit=512%2C373&ssl=1\",\"width\":512,\"height\":373},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/turtleflyblog.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/turtleflyblog.com\/#website\",\"url\":\"https:\/\/turtleflyblog.com\/\",\"name\":\"Who said turtle cannot fly\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/turtleflyblog.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-AU\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/turtleflyblog.com\/#\/schema\/person\/130c2e1bdce4a8ba27bfe14c65988172\",\"name\":\"Joseph\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-AU\",\"@id\":\"https:\/\/turtleflyblog.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/539caa7bc4af75cd4ab82fc8d51935da?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/539caa7bc4af75cd4ab82fc8d51935da?s=96&d=mm&r=g\",\"caption\":\"Joseph\"},\"sameAs\":[\"https:\/\/turtleflyblog.com\/\/\"],\"url\":\"https:\/\/turtleflyblog.com\/author\/joseph\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09 - Who said turtle cannot fly","description":"\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/","og_locale":"en_US","og_type":"article","og_title":"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09 - Who said turtle cannot fly","og_description":"\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002","og_url":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/","og_site_name":"Who said turtle cannot fly","article_published_time":"2020-10-05T08:02:54+00:00","article_modified_time":"2022-02-28T09:47:34+00:00","og_image":[{"url":"https:\/\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png","type":"","width":"","height":""}],"author":"Joseph","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Joseph","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/","url":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/","name":"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09 - Who said turtle cannot fly","isPartOf":{"@id":"https:\/\/turtleflyblog.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#primaryimage"},"image":{"@id":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#primaryimage"},"thumbnailUrl":"https:\/\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png","datePublished":"2020-10-05T08:02:54+00:00","dateModified":"2022-02-28T09:47:34+00:00","author":{"@id":"https:\/\/turtleflyblog.com\/#\/schema\/person\/130c2e1bdce4a8ba27bfe14c65988172"},"description":"\u672c\u6587\u4ecb\u7d39S.O.L.I.D\u539f\u5247\u4e2d\u7684\u4ecb\u9762\u9694\u96e2\u539f\u5247(Dependency Inversion Principle\uff0c\u7e2e\u5beb\u70baDIP)\u3002","breadcrumb":{"@id":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#breadcrumb"},"inLanguage":"en-AU","potentialAction":[{"@type":"ReadAction","target":["https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#primaryimage","url":"https:\/\/i0.wp.com\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png?fit=512%2C373&ssl=1","contentUrl":"https:\/\/i0.wp.com\/turtleflyblog.com\/wp-content\/uploads\/2020\/05\/1.png?fit=512%2C373&ssl=1","width":512,"height":373},{"@type":"BreadcrumbList","@id":"https:\/\/turtleflyblog.com\/zh\/2020\/10\/05\/solid-dip-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/turtleflyblog.com\/en\/"},{"@type":"ListItem","position":2,"name":"SOLID \u8a2d\u8a08\u539f\u5247 \u2013 \u4f9d\u8cf4\u5012\u8f49\uff08DIP\uff09"}]},{"@type":"WebSite","@id":"https:\/\/turtleflyblog.com\/#website","url":"https:\/\/turtleflyblog.com\/","name":"Who said turtle cannot fly","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/turtleflyblog.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-AU"},{"@type":"Person","@id":"https:\/\/turtleflyblog.com\/#\/schema\/person\/130c2e1bdce4a8ba27bfe14c65988172","name":"Joseph","image":{"@type":"ImageObject","inLanguage":"en-AU","@id":"https:\/\/turtleflyblog.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/539caa7bc4af75cd4ab82fc8d51935da?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/539caa7bc4af75cd4ab82fc8d51935da?s=96&d=mm&r=g","caption":"Joseph"},"sameAs":["https:\/\/turtleflyblog.com\/\/"],"url":"https:\/\/turtleflyblog.com\/author\/joseph\/"}]}},"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/posts\/215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/comments?post=215"}],"version-history":[{"count":1,"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/posts\/215\/revisions"}],"predecessor-version":[{"id":667,"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/posts\/215\/revisions\/667"}],"wp:attachment":[{"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/media?parent=215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/categories?post=215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/turtleflyblog.com\/wp-json\/wp\/v2\/tags?post=215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}