{"id":19262961,"url":"https://github.com/datawhalechina/sweetalk-design-pattern","last_synced_at":"2025-04-21T18:31:19.339Z","repository":{"id":60716914,"uuid":"537522660","full_name":"datawhalechina/sweetalk-design-pattern","owner":"datawhalechina","description":"基于《大话设计模式》对设计原则和设计模式进行解读。","archived":false,"fork":false,"pushed_at":"2024-03-28T13:55:44.000Z","size":79274,"stargazers_count":117,"open_issues_count":0,"forks_count":18,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-01T15:10:10.992Z","etag":null,"topics":["cpp","design-patterns","java","python"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datawhalechina.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-16T15:48:45.000Z","updated_at":"2025-02-21T07:58:26.000Z","dependencies_parsed_at":"2024-11-09T19:34:49.759Z","dependency_job_id":null,"html_url":"https://github.com/datawhalechina/sweetalk-design-pattern","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawhalechina%2Fsweetalk-design-pattern","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawhalechina%2Fsweetalk-design-pattern/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawhalechina%2Fsweetalk-design-pattern/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datawhalechina%2Fsweetalk-design-pattern/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datawhalechina","download_url":"https://codeload.github.com/datawhalechina/sweetalk-design-pattern/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250110925,"owners_count":21376555,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","design-patterns","java","python"],"created_at":"2024-11-09T19:34:17.660Z","updated_at":"2025-04-21T18:31:18.340Z","avatar_url":"https://github.com/datawhalechina.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sweetalk Design Pattern\n\n\u0026emsp;\u0026emsp;本项目主要基于《大话设计模式》这本书，对该书的设计原则和23个设计模式进行解读，原书是C#语言编写，本项目使用其他各种编程语言进行代码重写，供大家了解其他语言在设计模式中的编程方式和技巧。\n\n\u0026emsp;\u0026emsp;《大话设计模式》这本书，通过各种生活中的例子，在小菜和大鸟的不断提问与回答过程中，对程序的不断重构演变，学习设计模式在案例中的适用性，更进一步掌握设计模式的异同和关键点。\n\n## 使用说明\n\n\u0026emsp;\u0026emsp;结合《大话设计模式》这本书，总结了各种设计模式的基本概念、知识点和适用场景，并使用各种编程语言进行代码重写。先通过书中的案例，了解23种设计模式及其相关的代码示例，再尝试用其他语言进行实现，如果遇到难以实现的设计模式，再来查看本项目中的代码示例。\n\n\u0026emsp;\u0026emsp;如果觉得本项目中有错误，可以[点击这里](https://github.com/datawhalechina/sweetalk-design-pattern/issues)提交你希望补充的内容或者想要实现的编程语言，我们看到后会尽快进行补充。\n\n### 在线阅读地址\n\nhttps://datawhalechina.github.io/sweetalk-design-pattern/#/\n\n### 进度安排\n\n| 章节     | 内容                                                         | 负责人       |\n| -------- | ------------------------------------------------------------ | ------------ |\n| 前言     | 简介、内容概览（关联图）、设计理念                           | 长琴         |\n| 设计原则 | 单一职责原则                                                 | 肖桐         |\n|          | 开闭原则                                                     | 长琴         |\n|          | 依赖倒置原则                                                 | 胡锐锋       |\n|          | 迪米特原则                                                   | 碧涵         |\n|          | 里氏替换原则                                                 | 长琴         |\n| 设计模式 | 简单工厂模式、策略模式、装饰模式、代理模式、工厂方法模式     | 肖桐         |\n|          | 原型模式、模板方法模式、外观模式、建造者模式                 | 碧涵         |\n|          | 观察者模式、抽象工厂模式、状态模式、适配器模式               | 长琴         |\n|          | 备忘录模式、组合模式、迭代器模式、单例模式                   | 胡锐锋       |\n|          | 桥接模式、命令模式、职责链模式、中介者模式、享元模式、解释器模式、访问者模式 | 鸿飞         |\n| 应用代码 | Java代码部分                                                 | 碧涵         |\n|          | Python代码部分                                               | 肖桐         |\n|          | C++代码部分                                                  | 长琴、胡锐锋 |\n\n\n\n## 项目目录\n\n\u003cpre\u003e\ndocs-----------------------------------------------大话设计模式\nsrc------------------------------------------------示例代码\n|   +---design_patterns--------------------------------设计模式示例代码\n|   |   +---cpp--------------------------------------------C++语言示例代码\n|   |   |   +---abstract_factory-------------------------------抽象工厂模式\n|   |   |   +---adapter----------------------------------------适配器模式\n|   |   |   +---bridge-----------------------------------------桥接模式\n|   |   |   +---builder----------------------------------------建造者模式\n|   |   |   +---chain_of_responsibility------------------------职责链模式\n|   |   |   +---command----------------------------------------命令模式\n|   |   |   +---composite--------------------------------------组合模式\n|   |   |   +---decorator--------------------------------------装饰模式\n|   |   |   +---facade-----------------------------------------外观模式\n|   |   |   +---factory_method---------------------------------工厂方法模式\n|   |   |   +---flyweight--------------------------------------享元模式\n|   |   |   +---interpreter------------------------------------解释器模式\n|   |   |   +---iterator---------------------------------------迭代器模式\n|   |   |   +---mediator---------------------------------------中介者模式\n|   |   |   +---memento----------------------------------------备忘录模式\n|   |   |   +---observer---------------------------------------观察者模式\n|   |   |   +---prototype--------------------------------------原型模式\n|   |   |   +---proxy------------------------------------------代理模式\n|   |   |   +---simple_factory---------------------------------简单工厂模式\n|   |   |   +---singleton--------------------------------------单例模式\n|   |   |   +---state------------------------------------------状态模式\n|   |   |   +---strategy---------------------------------------策略模式\n|   |   |   +---template_method--------------------------------模板方法模式\n|   |   |   +---visitor----------------------------------------访问者模式\n|   |   +---java-------------------------------------------Java语言示例代码\n|   |   +---python-----------------------------------------Python语言示例代码\nREADME.md------------------------------------------项目说明\n\u003c/pre\u003e\n\n\n### 参考书籍\n\n- GoF\n- 深入设计模式\n- 精通 Python 设计模式（第 2 版）\n- 人人都懂设计模式：从生活中领悟设计模式\n- 秒懂设计模式\n- Python 设计模式（第 2 版）\n- 设计模式之禅\n- HeadFirst 设计模式\n- [设计模式 | 菜鸟教程](https://www.runoob.com/design-pattern/design-pattern-tutorial.html)\n\n### ChangeLog\n\n- v1.2完成初版 221023\n- v1.1完成笔记 221008\n- v1.0基础结构 220916\n\n## 关注我们\n\u003cdiv align=center\u003e\n\u003cp\u003e扫描下方二维码关注公众号：Datawhale\u003c/p\u003e\n\u003cimg src=\"resources/qrcode.jpeg\" width = \"180\" height = \"180\"\u003e\n\u003c/div\u003e\n\n## LICENSE\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://img.shields.io/badge/license-CC%20BY--NC--SA%204.0-lightgrey\" /\u003e\u003c/a\u003e\u003cbr /\u003e本作品采用\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议\u003c/a\u003e进行许可。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatawhalechina%2Fsweetalk-design-pattern","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatawhalechina%2Fsweetalk-design-pattern","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatawhalechina%2Fsweetalk-design-pattern/lists"}