![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 58
weixin_43471422
这个作者很懒,什么都没留下…
展开
-
浅谈golang中的观察者模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式行为型模式观察者模式...原创 2022-05-08 18:39:17 · 527 阅读 · 0 评论 -
浅谈golang中的享元模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式享元模式享元模式就是为了更好的节省和管理资源复用,属于对象级别(不可变对象)的复用。通常通过pool来缓存已创建的对象,用时取出,用完回收。java的线程池以及数据库连接池都是享元模式。原创 2022-04-30 15:00:08 · 1230 阅读 · 0 评论 -
浅谈golang中的组合模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式组合模式组合模式将一组对象组织成树形结构,以表示一种“部分-整体”的层次结构。最好处理的业务能够用树形结构表示,比如公司层级。// IOrganization 组织接口,都实现统计人数的功原创 2022-04-30 14:48:01 · 447 阅读 · 0 评论 -
浅谈golang中的门面模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式门面模式该模式为子系统提供一组统一的接口,定义一组高层接口让子系统更易用,就是向上封装,很好理解。//场景:登录注册功能整合到一起。//一般的登录注册接口type IUser int原创 2022-04-30 14:30:44 · 282 阅读 · 0 评论 -
浅谈golang中的适配器模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式适配器模式适配器模式将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。实现方式分为:类适配器(继承实现) 和 对象适配器(组合实现)对于实现方式的选择原创 2022-04-30 14:08:16 · 278 阅读 · 0 评论 -
浅谈golang中的装饰器模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式装饰器模式主要解决继承关系过于复杂的问题,通过组合来代替继承,给目标类添加增强功能,作为包装。type IDraw interface { Draw() string}type S原创 2022-04-29 20:45:20 · 572 阅读 · 0 评论 -
浅谈golang中的桥接模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式桥接模式桥接模式让抽象(接口)和现实(实现类)解耦,可以独立变化,特点就是通过组合的方式来进行自由调用,也就是利用了多态的特性。//桥接模式type IMsgSender interfa原创 2022-04-29 17:44:50 · 253 阅读 · 0 评论 -
浅谈golang中的代理模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式结构型模式代理模式首先,我们知道代理模式中分为静态代理和动态代理。静态代理需要在编译前就要写好,而动态代理需要在运行时通过反射来实现方法增强。上述的话,太过粗糙,下面列举一下双方的区别:静态代理:原创 2022-04-29 15:23:53 · 3049 阅读 · 1 评论 -
golang中的原型模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式创建型模式原型模式每次返回的都是新的对象。以深浅拷贝为例:type Person struct { name string age int}//深拷贝func (p *Person)原创 2022-04-28 22:57:42 · 202 阅读 · 0 评论 -
浅谈golang中的建造者模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式创建型模式建造者模式建造者的应用场景:类中的属性比较多。类中的属性有一定的依赖关系,或者约束条件。存在必选或非必选属性。创建不可变对象区别:建造者:创建参数较多的对象。工厂模式:创原创 2022-04-28 22:45:24 · 984 阅读 · 0 评论 -
浅谈golang中的工厂模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式创建型模式工厂模式工厂模式在大家写项目的时候用到的地方很多,可以用于代码的解耦以及方便拓展。在说起工厂模式之前,帮大家回忆一下golang中接口的特性:类型不需要显式声明它实现了某个接口:接口被原创 2022-04-28 22:08:58 · 639 阅读 · 0 评论 -
浅谈golang中的单例模式
来自一个大佬的博客,建议食用设计模式不分语言,是一种思维层面的体现,但是不能在不同语言中使用同一套实现(每种语言有不同的特性),比如go,本身是没有继承一说,但是通过结构体的组合来实现语义上的继承。而多态也是通过接口的方式来实现的。下方的图来自于大佬博客,贴在这里方便查看!!!设计原则设计模式创建型模式单例模式分为懒汉式和饿汉式。饿汉式//饿汉式type singleton struct {}var instance *singleton//在go文件的加载顺序中,先加载i原创 2022-04-28 20:29:50 · 172 阅读 · 0 评论