{"id":923226,"date":"2024-06-27T08:36:38","date_gmt":"2024-06-27T08:36:38","guid":{"rendered":"https:\/\/proxyelite.info\/?p=923226"},"modified":"2024-06-27T08:36:39","modified_gmt":"2024-06-27T08:36:39","slug":"what-are-solid-principles-and-why-are-they-important","status":"publish","type":"post","link":"https:\/\/proxyelite.info\/cn\/what-are-solid-principles-and-why-are-they-important\/","title":{"rendered":"\u4ec0\u4e48\u662f SOLID \u539f\u5219\uff1f\u4e3a\u4ec0\u4e48\u5b83\u4eec\u5f88\u91cd\u8981\uff1f"},"content":{"rendered":"<p class=\"wp-block-paragraph\">SOLID \u539f\u5219\u662f\u8bbe\u8ba1\u53ef\u7ef4\u62a4\u3001\u53ef\u6269\u5c55\u4e14\u5f3a\u5927\u7684\u8f6f\u4ef6\u7684\u57fa\u672c\u51c6\u5219\u3002\u8fd9\u4e9b\u539f\u5219\u7531 Robert C. Martin\uff08\u9c8d\u52c3\u5927\u53d4\uff09\u63d0\u51fa\uff0c\u53ef\u5e2e\u52a9\u5f00\u53d1\u4eba\u5458\u521b\u5efa\u66f4\u7075\u6d3b\u3001\u66f4\u6613\u4e8e\u7ba1\u7406\u7684\u7cfb\u7edf\u3002\u7406\u89e3\u548c\u5e94\u7528 SOLID \u539f\u5219\u5bf9\u4e8e\u6784\u5efa\u80fd\u591f\u9002\u5e94\u4e0d\u65ad\u53d8\u5316\u7684\u9700\u6c42\u7684\u9ad8\u8d28\u91cf\u8f6f\u4ef6\u81f3\u5173\u91cd\u8981\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u5355\u4e00\u8d23\u4efb\u539f\u5219\uff08SRP\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9a\u4e49<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5355\u4e00\u804c\u8d23\u539f\u5219 (SRP) \u89c4\u5b9a\uff0c\u4e00\u4e2a\u7c7b\u5e94\u8be5\u53ea\u6709\u4e00\u4e2a\u6539\u53d8\u7684\u539f\u56e0\uff0c\u4e5f\u5c31\u662f\u8bf4\uff0c\u5b83\u5e94\u8be5\u53ea\u6709\u4e00\u4e2a\u5de5\u4f5c\u6216\u804c\u8d23\u3002\u8fd9\u4e00\u539f\u5219\u6709\u52a9\u4e8e\u4fdd\u6301\u7c7b\u7684\u4e13\u6ce8\u6027\u548c\u53ef\u7ba1\u7406\u6027\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u597d\u5904<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u53ef\u7ef4\u62a4\u6027<\/strong>\uff1a\u7b80\u5316\u7406\u89e3\u548c\u66f4\u65b0\u4ee3\u7801\u3002<\/li>\n\n\n\n<li><strong>\u53ef\u6d4b\u8bd5\u6027<\/strong>\uff1a\u5177\u6709\u5355\u4e00\u804c\u8d23\u7684\u7c7b\u66f4\u6613\u4e8e\u6d4b\u8bd5\u3002<\/li>\n\n\n\n<li><strong>\u7075\u6d3b\u6027<\/strong>\uff1a\u53d8\u5316\u4ec5\u9650\u4e8e\u7279\u5b9a\u7c7b\u522b\uff0c\u4ece\u800c\u964d\u4f4e\u4e86\u526f\u4f5c\u7528\u7684\u98ce\u9669\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u5de5\u5177<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9759\u6001\u4ee3\u7801\u5206\u6790<\/strong>\uff1aSonarQube \u7b49\u5de5\u5177\u53ef\u4ee5\u5e2e\u52a9\u8bc6\u522b\u5177\u6709\u591a\u9879\u804c\u8d23\u7684\u7c7b\u3002<\/li>\n\n\n\n<li><strong>\u91cd\u6784\u5de5\u5177<\/strong>\uff1aIntelliJ IDEA \u548c Visual Studio \u7b49 IDE \u63d0\u4f9b\u4e86\u91cd\u6784\u5de5\u5177\u6765\u5e2e\u52a9\u5c06\u7c7b\u62c6\u5206\u4e3a\u5355\u4e00\u804c\u8d23\u5b9e\u4f53\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f8b\u5b50<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5047\u8bbe\u6709\u4e00\u4e2a\u7c7b\u540c\u65f6\u5904\u7406\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u548c\u6570\u636e\u8bb0\u5f55\u3002\u8fd9\u8fdd\u53cd\u4e86 SRP\uff0c\u56e0\u4e3a\u5b83\u5177\u6709\u591a\u9879\u804c\u8d23\u3002\u901a\u8fc7\u5c06\u8fd9\u4e9b\u804c\u8d23\u5206\u6210\u4e24\u4e2a\u4e0d\u540c\u7684\u7c7b\uff0c\u4e00\u4e2a\u7528\u4e8e\u8eab\u4efd\u9a8c\u8bc1\uff0c\u4e00\u4e2a\u7528\u4e8e\u8bb0\u5f55\uff0c\u6211\u4eec\u9075\u5b88\u4e86 SRP \u5e76\u63d0\u9ad8\u4e86\u7cfb\u7edf\u7684\u53ef\u7ef4\u62a4\u6027\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code data-no-translation=\"\">class Authenticator:\n    def authenticate_user(self, user_credentials):\n        # Authentication logic here\n\nclass Logger:\n    def log_message(self, message):\n        # Logging logic here\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u5f00\u653e\/\u5c01\u95ed\u539f\u5219\uff08OCP\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9a\u4e49<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f00\u653e\/\u5c01\u95ed\u539f\u5219 (OCP) \u89c4\u5b9a\u8f6f\u4ef6\u5b9e\u4f53\u5e94\u8be5\u5bf9\u6269\u5c55\u5f00\u653e\uff0c\u4f46\u5bf9\u4fee\u6539\u5c01\u95ed\u3002\u8fd9\u610f\u5473\u7740\u60a8\u5e94\u8be5\u80fd\u591f\u5728\u4e0d\u66f4\u6539\u73b0\u6709\u4ee3\u7801\u7684\u60c5\u51b5\u4e0b\u6dfb\u52a0\u65b0\u529f\u80fd\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u597d\u5904<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u53ef\u6269\u5c55\u6027<\/strong>\uff1a\u65e0\u9700\u4fee\u6539\u73b0\u6709\u4ee3\u7801\u5373\u53ef\u6dfb\u52a0\u65b0\u529f\u80fd\u3002<\/li>\n\n\n\n<li><strong>\u7a33\u5b9a<\/strong>\uff1a\u73b0\u6709\u4ee3\u7801\u4fdd\u6301\u4e0d\u53d8\uff0c\u4fdd\u6301\u7cfb\u7edf\u7a33\u5b9a\u6027\u3002<\/li>\n\n\n\n<li><strong>\u53ef\u91cd\u7528\u6027<\/strong>\uff1a\u4fc3\u8fdb\u62bd\u8c61\u7684\u4f7f\u7528\uff0c\u5b9e\u73b0\u4ee3\u7801\u91cd\u7528\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u5de5\u5177<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u8bbe\u8ba1\u6a21\u5f0f<\/strong>\uff1a\u7b56\u7565\u3001\u88c5\u9970\u548c\u5de5\u5382\u7b49\u6a21\u5f0f\u6709\u52a9\u4e8e\u5b9e\u73b0 OCP\u3002<\/li>\n\n\n\n<li><strong>\u6784\u67b6<\/strong>\uff1a\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6\uff08\u5982 Java \u7684 Spring \u548c JavaScript \u7684 Angular\uff09\u901a\u8fc7\u4fc3\u8fdb\u63a5\u53e3\u548c\u4f9d\u8d56\u6ce8\u5165\u7684\u4f7f\u7528\u6765\u652f\u6301 OCP\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f8b\u5b50<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f7f\u7528\u591a\u6001\u6027\u6765\u6269\u5c55\u529f\u80fd\u800c\u4e0d\u4fee\u6539\u73b0\u6709\u7c7b\u7b26\u5408 OCP\u3002\u4f8b\u5982\uff0c\u8003\u8651\u4e00\u4e2a\u5f62\u72b6\u7ed8\u5236\u5e94\u7528\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u5728\u4e0d\u4fee\u6539\u73b0\u6709\u4ee3\u7801\u7684\u60c5\u51b5\u4e0b\u6dfb\u52a0\u65b0\u5f62\u72b6\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code data-no-translation=\"\">class Shape:\n    def draw(self):\n        pass\n\nclass Circle(Shape):\n    def draw(self):\n        # Drawing logic for circle\n\nclass Square(Shape):\n    def draw(self):\n        # Drawing logic for square\n\ndef draw_shape(shape: Shape):\n    shape.draw()\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u91cc\u6c0f\u66ff\u6362\u539f\u5219 (LSP)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9a\u4e49<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u91cc\u6c0f\u66ff\u6362\u539f\u5219 (LSP) \u6307\u51fa\uff0c\u8d85\u7c7b\u7684\u5bf9\u8c61\u5e94\u8be5\u53ef\u4ee5\u7528\u5b50\u7c7b\u7684\u5bf9\u8c61\u66ff\u6362\uff0c\u800c\u4e0d\u4f1a\u5f71\u54cd\u7a0b\u5e8f\u7684\u6b63\u786e\u6027\u3002\u8fd9\u786e\u4fdd\u4e86\u5b50\u7c7b\u53ef\u4ee5\u66ff\u4ee3\u5176\u8d85\u7c7b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u597d\u5904<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e92\u6362\u6027<\/strong>\uff1a\u5b50\u7c7b\u53ef\u4ee5\u4e0e\u5176\u8d85\u7c7b\u4e92\u6362\u4f7f\u7528\u3002<\/li>\n\n\n\n<li><strong>\u53ef\u9760\u6027<\/strong>\uff1a\u786e\u4fdd\u7cfb\u7edf\u5728\u4f7f\u7528\u5b50\u7c7b\u65f6\u6b63\u786e\u8fd0\u884c\u3002<\/li>\n\n\n\n<li><strong>\u4e00\u81f4\u6027<\/strong>\uff1a\u4fc3\u8fdb\u6574\u4e2a\u7c7b\u5c42\u6b21\u7ed3\u6784\u7684\u4e00\u81f4\u884c\u4e3a\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u5de5\u5177<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u9759\u6001\u7c7b\u578b\u68c0\u67e5\u5668<\/strong>\uff1a\u50cf MyPy for Python \u8fd9\u6837\u7684\u5de5\u5177\u53ef\u4ee5\u901a\u8fc7\u786e\u4fdd\u7c7b\u578b\u6b63\u786e\u6027\u6765\u5e2e\u52a9\u6267\u884c LSP\u3002<\/li>\n\n\n\n<li><strong>\u5355\u5143\u6d4b\u8bd5<\/strong>\uff1a\u4e3a\u8d85\u7c7b\u884c\u4e3a\u7f16\u5199\u6d4b\u8bd5\u5e76\u9488\u5bf9\u5b50\u7c7b\u8fd0\u884c\u5b83\u4eec\u4ee5\u786e\u4fdd\u5408\u89c4\u6027\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f8b\u5b50<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8003\u8651\u4e00\u4e2a\u8d85\u7c7b <code data-no-translation=\"\">Bird<\/code> \u548c\u4e00\u4e2a\u5b50\u7c7b <code data-no-translation=\"\">Penguin<\/code>. \u5982\u679c <code data-no-translation=\"\">Bird<\/code> \u7c7b\u6709\u4e00\u4e2a\u65b9\u6cd5 <code data-no-translation=\"\">fly<\/code>\uff0c \u4f46 <code data-no-translation=\"\">Penguin<\/code> \u65e0\u6cd5\u98de\u884c\uff0c\u5426\u5219\u4f1a\u8fdd\u53cd LSP\u3002\u76f8\u53cd\uff0c\u65b9\u6cd5\u5e94\u8be5\u88ab\u8bbe\u8ba1\u6210\u6240\u6709\u5b50\u7c7b\u90fd\u53ef\u4ee5\u9002\u5f53\u5730\u5b9e\u73b0\u5b83\u4eec\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code data-no-translation=\"\">class Bird:\n    def move(self):\n        pass\n\nclass Penguin(Bird):\n    def move(self):\n        # Penguins waddle instead of flying\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u63a5\u53e3\u9694\u79bb\u539f\u5219\uff08ISP\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9a\u4e49<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u63a5\u53e3\u9694\u79bb\u539f\u5219 (ISP) \u89c4\u5b9a\uff0c\u4e0d\u5e94\u5f3a\u8feb\u5ba2\u6237\u7aef\u4f9d\u8d56\u5176\u4e0d\u4f7f\u7528\u7684\u63a5\u53e3\u3002\u8fd9\u610f\u5473\u7740\u5e94\u521b\u5efa\u7279\u5b9a\u7684\u3001\u7ec6\u7c92\u5ea6\u7684\u63a5\u53e3\uff0c\u800c\u4e0d\u662f\u4e00\u4e2a\u5927\u578b\u7684\u3001\u901a\u7528\u7684\u63a5\u53e3\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u597d\u5904<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u89e3\u8026<\/strong>\uff1a\u8f83\u5c0f\u3001\u5177\u4f53\u7684\u63a5\u53e3\u51cf\u5c11\u4e86\u7c7b\u4e4b\u95f4\u7684\u4f9d\u8d56\u6027\u3002<\/li>\n\n\n\n<li><strong>\u51dd\u805a<\/strong>\uff1a\u4fc3\u8fdb\u66f4\u5177\u51dd\u805a\u529b\u548c\u9488\u5bf9\u6027\u7684\u754c\u9762\u3002<\/li>\n\n\n\n<li><strong>\u7075\u6d3b\u6027<\/strong>\uff1a\u66f4\u5bb9\u6613\u5b9e\u73b0\u53d8\u66f4\u548c\u6dfb\u52a0\u65b0\u529f\u80fd\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u5de5\u5177<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u63a5\u53e3\u63d0\u53d6\u5de5\u5177<\/strong>\uff1aEclipse \u548c IntelliJ IDEA \u7b49 IDE \u53ef\u4ee5\u5e2e\u52a9\u4ece\u73b0\u6709\u7c7b\u4e2d\u63d0\u53d6\u63a5\u53e3\u3002<\/li>\n\n\n\n<li><strong>\u4ee3\u7801\u5ba1\u67e5\u5de5\u5177<\/strong>\uff1aGitHub \u548c Bitbucket \u7b49\u5e73\u53f0\u53ef\u4ee5\u901a\u8fc7\u540c\u884c\u8bc4\u5ba1\u5e2e\u52a9\u786e\u4fdd\u9075\u5b88 ISP\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f8b\u5b50<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5927\u578b\u754c\u9762 <code data-no-translation=\"\">Worker<\/code> \u5305\u62ec\u4e24\u79cd\u65b9\u6cd5 <code data-no-translation=\"\">developer<\/code> \u548c <code data-no-translation=\"\">manager<\/code> \u4efb\u52a1\u8fdd\u53cd\u4e86 ISP\u3002\u76f8\u53cd\uff0c\u5e94\u8be5\u5c06\u5176\u62c6\u5206\u4e3a\u4e24\u4e2a\u63a5\u53e3\uff1a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code data-no-translation=\"\">class Developer:\n    def write_code(self):\n        pass\n\nclass Manager:\n    def manage_team(self):\n        pass\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f9d\u8d56\u5012\u7f6e\u539f\u5219\uff08DIP\uff09<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u5b9a\u4e49<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f9d\u8d56\u5012\u7f6e\u539f\u5219 (DIP) \u6307\u51fa\uff0c\u9ad8\u7ea7\u6a21\u5757\u4e0d\u5e94\u4f9d\u8d56\u4e8e\u4f4e\u7ea7\u6a21\u5757\u3002\u4e24\u8005\u90fd\u5e94\u4f9d\u8d56\u4e8e\u62bd\u8c61\u3002\u6b64\u5916\uff0c\u62bd\u8c61\u4e0d\u5e94\u4f9d\u8d56\u4e8e\u7ec6\u8282\u3002\u7ec6\u8282\u5e94\u8be5\u4f9d\u8d56\u4e8e\u62bd\u8c61\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u597d\u5904<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u89e3\u8026<\/strong>\uff1a\u9ad8\u7ea7\u6a21\u5757\u4e0e\u4f4e\u7ea7\u6a21\u5757\u89e3\u8026\u3002<\/li>\n\n\n\n<li><strong>\u7075\u6d3b\u6027<\/strong>\uff1a\u66f4\u5bb9\u6613\u6539\u53d8\u548c\u6269\u5c55\u7cfb\u7edf\u800c\u4e0d\u5f71\u54cd\u9ad8\u7ea7\u6a21\u5757\u3002<\/li>\n\n\n\n<li><strong>\u53ef\u6d4b\u8bd5\u6027<\/strong>\uff1a\u901a\u8fc7\u4f9d\u8d56\u6ce8\u5165\u63d0\u9ad8\u53ef\u6d4b\u8bd5\u6027\u3002<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">\u5de5\u5177<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u4f9d\u8d56\u6ce8\u5165\u6846\u67b6<\/strong>\uff1aJava \u7684 Spring\u3001Java \u548c Android \u7684 Dagger \u4ee5\u53ca Java \u7684 Guice \u7b49\u6846\u67b6\u53ef\u4ee5\u4fc3\u8fdb DIP\u3002<\/li>\n\n\n\n<li><strong>\u6a21\u62df\u6846\u67b6<\/strong>\uff1aJava \u7684 Mockito \u548c Python \u7684 unittest.mock \u7b49\u5de5\u5177\u53ef\u4ee5\u5e2e\u52a9\u521b\u5efa\u7528\u4e8e\u6d4b\u8bd5\u76ee\u7684\u7684\u6a21\u62df\u5bf9\u8c61\u3002<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u4f8b\u5b50<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0d\u8981\u4f7f\u7528\u9ad8\u7ea7\u7c7b\u76f4\u63a5\u5b9e\u4f8b\u5316\u4f4e\u7ea7\u7c7b\uff0c\u800c\u662f\u4f7f\u7528\u62bd\u8c61\uff1a<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-lang=\"Python\"><code data-no-translation=\"\">class MessageService:\n    def send_message(self, message):\n        pass\n\nclass EmailService(MessageService):\n    def send_message(self, message):\n        # Email sending logic here\n\nclass Notification:\n    def __init__(self, service: MessageService):\n        self.service = service\n\n    def notify(self, message):\n        self.service.send_message(message)\n<\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ed3\u8bba<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">SOLID \u539f\u5219\u5bf9\u4e8e\u8bbe\u8ba1\u53ef\u7ef4\u62a4\u3001\u53ef\u6269\u5c55\u4e14\u5f3a\u5927\u7684\u8f6f\u4ef6\u81f3\u5173\u91cd\u8981\u3002\u901a\u8fc7\u9075\u5b88\u8fd9\u4e9b\u539f\u5219\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u521b\u5efa\u66f4\u7075\u6d3b\u3001\u66f4\u6613\u4e8e\u7ba1\u7406\u7684\u7cfb\u7edf\u3002\u7406\u89e3\u548c\u5e94\u7528 SOLID \u539f\u5219\u53ef\u4ee5\u663e\u8457\u63d0\u9ad8\u8f6f\u4ef6\u8d28\u91cf\u5e76\u786e\u4fdd\u5176\u957f\u671f\u6210\u529f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8bf7\u8bb0\u4f4f\uff0c\u6709\u6548\u8f6f\u4ef6\u8bbe\u8ba1\u7684\u5173\u952e\u5728\u4e8e\u6301\u7eed\u5b66\u4e60\u548c\u5b9e\u8df5\u3002\u5f00\u59cb\u5728\u60a8\u7684\u9879\u76ee\u4e2d\u5b9e\u65bd\u8fd9\u4e9b\u539f\u5219\uff0c\u60a8\u5f88\u5feb\u5c31\u4f1a\u770b\u5230\u5b83\u4eec\u4e3a\u60a8\u7684\u4ee3\u7801\u5e93\u5e26\u6765\u7684\u597d\u5904\u3002\u795d\u60a8\u7f16\u7801\u6109\u5feb\uff01<\/p>","protected":false},"excerpt":{"rendered":"<p>SOLID principles are fundamental guidelines for designing software that is maintainable, scalable, and robust. Introduced by Robert C. Martin (Uncle Bob), these principles help developers create systems that are more flexible and easier to manage. Understanding and applying SOLID principles is essential for building high-quality software that can adapt to changing requirements. The Single Responsibility [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":923227,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-923226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"acf":[],"_links":{"self":[{"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/posts\/923226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/comments?post=923226"}],"version-history":[{"count":0,"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/posts\/923226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/media\/923227"}],"wp:attachment":[{"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/media?parent=923226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/categories?post=923226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/proxyelite.info\/cn\/wp-json\/wp\/v2\/tags?post=923226"}],"curies":[{"name":"\u53ef\u6e7f\u6027\u7c89\u5242","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}