{"repo":"mohuishou/go-design-pattern","free":true,"listed":false,"github":"https://github.com/mohuishou/go-design-pattern","clone":"git clone https://github.com/mohuishou/go-design-pattern.git","description":"golang design pattern go 设计模式实现，包含 23 种常见的设计模式实现，同时这也是极客时间-设计模式之美 的笔记","language":"Go","stars":2425,"topics":["golang","go","design-patterns","go-design-patterns","golang-design-pattern"],"license":null,"category":"dev-tools","readme_excerpt":"go-design-pattern 更多系列文章可以扫描下方二维码关注博主 总结 原本预计是在十月底更新完毕这个系列，到今天是11-05，晚了几天，不过也还好，这是第一次这么密集的去更新博客上的内容，更多的是以笔记的形式来呈现，加上这篇一共24篇文章差不多两个半月的时间，平均每周输出两篇，感觉还是不错。后续可能会视情况不定期的更新一些实战内容，也有可能没有。接下来下一个系列应该是数据结构与算法，包含对 Go 中一些底层数据和标准库包的学习，例如 slice, sort 等等。 话说回来，回头再看学习设计模式我们究竟需要学习一些什么？ - 写 Go 需要使用到设计模式么？ - 需要，但是切记请勿使用其他语言的方式来写 Go - 如果看过之前的一些文章，就会发现类似 JAVA 的这些面向对象语言中的某些设计模式的写法在 Go 中会十分的别扭 - 但是 Go 不需要设计模式么？不是的，设计模式的思想是想通的，并且我们一直都在使用，例如我们常见的对象创建方式 NewXXX 这其实就是一个简单工厂 - 设计模式学习的重点是什么？ - 设计原则，以及设计模式的使用场景和优缺点，实现相对来说还没有那么重要 - 如果是常见的设计模式是武术招式，那么设计原则就是内功心法，没有内功心法那么招式套路也就是花架子 - 熟练掌握不同设计模式的使用场景可以帮助我们学会见招拆招，灵活应用而不是只会套路 - 最后设计模式不是银弹，不要拿着🔨就觉得哪里都像是钉子，不要过早优化，持续重构才是正道 设计原则 同时这也是 Code Review 的重要标准之一 点击展开设计原则 设计模式 点击展开设计模式 Go设计模式 - 单例模式包含饿汉式和懒汉式两种实现 - 工厂模式包含简单工厂、工厂方法、抽象工厂、DI容器 - 代理模式包含静态代理、动态代理（采用 go generate 模拟） - 观察者模式包含观察者模式、eventbus 类型 设计模式（Github） 常用 博客 :--------: :-----------------------------------------------------------------------------------------------------------------------: :------: :-----------------------------------------------------------------------------------: 创建型 单例模式(Singleton Design Pattern) ✅ Go设计模式01-单例模式 工厂模式(Factory Design Pattern) ✅ Go设计模式02-工厂模式&DI容器 建造者模式(Builder Design Pattern) ✅ Go设计模式03-建造者模式 原型模式(Prototype Design Pattern) ❌ Go设计模式04-原型模式 结构型 代理模式(Proxy Design Pattern) ✅ Go设计模式06-代理模式(generate实现类似动态代理) 桥接模式(Bridge Design Pattern) ✅ Go设计模式07-桥接模式 装饰器模式(Decorator Design Pattern) ✅ Go设计模式08-装饰器模式 适配器模式(Adapter Design Pattern) ✅ Go设计模式09-适配器模式 门面模式(Facade Design Pattern) ❌ Go设计模式10","default_branch":null,"files":null,"tree":[],"storefront":"/r/mohuishou","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mohuishou/go-design-pattern/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}