
设计模式
设计模式
abcnull
INTP男,好结交志趣相投的朋友,微信:a463279708,希望能共同努力进步!你们的支持将是我写下去的不竭动力......
展开
-
golang单例模式
单例模式,一种很常用的设计模式,特点是:类构造器私有化因为不能被外部构造,拥有自己的类属性,对外暴露获取实例的静态函数说白了就是返回一个实例出去,但是这个实例是只能内部构造一次,不允许外部构造非线程安全。当正在创建时,有线程来访问此时ins = nil就会再创建,单例类就会有多个实例了 懒汉加锁单例 懒汉单例线程不安全,那就加个锁呗,但加锁是要付出一些成本的 懒汉加双重锁 sync.Once单例(荐) sync.Once 是 golang 提供的方法,一旦执行一次,就不再执行 饿汉单例 线程安全,但是如果原创 2022-06-13 23:10:06 · 955 阅读 · 0 评论 -
设计模式-使用责任链模式改造if else并优化传统责任链
文章目录简介代码实现优缺点应用场景 简介 普通的 if else 或者 switch case 语句虽然可以做选择,但是一旦条件增加,就显得混乱。责任链模式的的思想其实和 if else 或者 switch case 很类似都是一步步做过滤,只不过责任链是通过对象来过滤罢了,责任链可以看做一条单链表的数据结构,一个对象一个对象的过滤条件,符合的就执行然后结束,不符合的就往后传递,如果每个对象都无法处理,一般会有一个最终的处理器来处理 代码实现 我们先看故事场景 假如你朋友有一辆豪车,但是它坏掉了,朋友委托原创 2020-07-24 17:29:17 · 2496 阅读 · 2 评论 -
设计模式-策略模式
文章目录简介代码实现优缺点应用场景 简介 和工厂模式比较像,理解起来也蛮简单,策略对象的改变会影响执行者对象的的执行结果,而工厂模式是使用者不用考虑如何实现实例化,只用考虑传参给工厂的解耦模式 代码实现 // 策略接口 public interface Strategy { public int doOperation(int num1, int num2); } // 加法策略 publ...原创 2020-03-16 21:31:44 · 284 阅读 · 0 评论 -
设计模式-单例模式
文章目录简介代码实现优缺点应用场景 简介 java 单例模式属于创建型模式,此模式可以确保一个类中只有一个对象被创建,单例除了饿汉单例,懒汉单例,还有其他多种方式 饿汉单例模式天生是线程安全的,为什么呢,因为它提早在静态变量的时候第一次就给它初始化了,这样即使是多线程,以后每次用 instance 就肯定不会再被初始化一遍 懒汉单例模式非线程安全,却可以延时加载,以为创建对象写在被调用的方法里头,...原创 2020-03-16 20:28:05 · 324 阅读 · 0 评论 -
设计模式-简单工厂模式
简介 简单工厂模式又称静态工厂方法模式,简单工厂模式抽象的理解就是通过工厂类传不同参数达到初始出化想要的“产品”的模式,这种方式可以不直接拿到产品,而是给工厂传递不同参数来拿到产品。这样不管创建什么“产品”对象都可以通过“工厂”,即使那些产品更改了,同样可以使用工厂,从某种意义上来说实现解耦 代码实现 // 产品接口 public interface ProductImpl { void ...原创 2020-03-16 18:27:35 · 234 阅读 · 0 评论