![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
ChaosMeta博客
“The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time.”
展开
-
Golang设计模式-适配器模式
一.介绍意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。主要解决:主要解决在软件系统中,常常要将一些"现存的对象"放到新的环境中,而新环境要求的接口是现对象不能满足的。何时使用: 1、系统需要使用现有的类,而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一...原创 2020-01-07 11:44:00 · 736 阅读 · 0 评论 -
Golang设计模式-代理模式
一.介绍意图:为其他对象提供一种代理以控制对这个对象的访问。主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。何时使用:想在访问一个类时做一些控制。如何解决...原创 2020-01-06 16:35:31 · 677 阅读 · 0 评论 -
Golang设计模式-观察者模式
一.观察者模式介绍意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作。何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。如何解决:使用面向对象技术,可以将这种依赖关系弱化。观察者...原创 2020-01-02 19:16:07 · 398 阅读 · 0 评论 -
Golang设计模式-单例模式
一.介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。主要解决:一个全局使用的类频繁地创建与销毁。何时使用:当您想控制实例数目,节省系统资源的时候。如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。关键代码:构造函数是私有的。二.代码2.1 懒汉模式type singleton struct{}var ins *singleton...原创 2019-12-16 14:55:05 · 308 阅读 · 0 评论 -
Golang设计模式-工厂模式
一.介绍定义一个用于创建对象的接口,让子类界定实例化哪个类。工厂方法使一个类的实例化延迟到子类。二.工厂模式和简单工厂模式的区别 简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断,根据客户的选择动态实例化相关的类,对于客户端来说,去除了与具体产品的依赖。如果是翻译,让客户端不管用哪个类的实例,只需把翻译类型(int 1,2,3)给工厂,工厂自动给出了相应的实例,客户...原创 2019-12-12 18:05:57 · 2123 阅读 · 0 评论 -
Golang设计模式-简单工厂模式
一.背景 假设我们在做一款小型翻译软件,软件可以将德语、英语、日语都翻译成目标中文,并显示在前端。二.使用接口 我们会有三个具体的语言翻译结构体,或许以后还有更多,但现在分别是German Translater、English Translater、Japanese Translater,他们都共同实现了一个接口Translator。//翻译接口ty...原创 2019-12-12 16:54:02 · 240 阅读 · 0 评论