设计模式
文章平均质量分 96
学习设计模式的总结
SunAlwaysOnline
开始工作的第3年!
展开
-
单例模式的6大种类,如何保证线程安全、反射安全以及序列化安全,这次终于通透了
单例模式在日常的开发过程中,我们需要使用到设计模式,而单例模式可谓是最常见的一种。正确的使用单例模式,不仅可以降低内存的使用率,也可以提升整个程序的运行效率。下面我来谈谈自己对单例模式的理解。【1】懒汉式特点:(1)是一种牺牲时间换取空间的策略(2)懒加载,只在需要的时候才实例化对象public class Singleton { private static Singlet...原创 2021-10-06 17:25:58 · 2532 阅读 · 3 评论 -
【设计模式】代理模式
一、前言Spring中的AOP思想就是对代理模式的经典运用,下面先讲讲代理模式的核心思想,以静态代理为例。二、示例下面有这样一个例子,委托人在遭遇利益受损的时候,可以委托律师帮忙打官司。先定义一个描述行为的接口:package com.design.proxy.statics;public interface Action { void handle();}委托人,实现这个接口,主要的行为是寻找律师。package com.design.proxy.stati原创 2020-06-01 20:27:36 · 656 阅读 · 0 评论 -
【SpringBoot】使用不同的策略动态地调用某个接口的实现类
经常遇到这样的一个需求,前端传的实体类型相同,后端需要根据实体类中的某一个字符串,动态地调用某一个类的方法。在SpringBoot中,我们可以理解成,一个Controller接口对应多个ServiceImpl,使用这种方式,如果后期需要添加一个功能,仅仅创建一个ServiceImpl就可以满足需求,而不用再额外创建一个Controller接口。现在假设一个情景,前端传入不同的用户类型,后端...原创 2020-03-12 11:17:15 · 7595 阅读 · 4 评论 -
面试官:请写一个你认为比较“完美”的单例
转自半路雨歌,原文地址面试官:请写一个你认为比较“完美”的单例单例模式是保证一个类的实例有且只有一个,在需要控制资源(如数据库连接池),或资源共享(如有状态的工具类)的场景中比较适用。如果让我们写一个单例实现,估计绝大部分人都觉得自己没问题,但如果需要实现一个比较完美的单例,可能并没有你想象中简单。本文以主人公小雨的一次面试为背景,循序渐进地讨论如何实现一个较为“完美”的单例。本文人物与场景皆为虚构,如有雷同,纯属捏造。小雨计算机专业毕业三年,对设计模式略有涉猎,能写一些简单的实现,掌握一些基本的J转载 2020-05-15 15:08:55 · 615 阅读 · 0 评论 -
【设计模式】建造者模式
一、前言什么是建造者模式?或许我们对这个模式一点都不了解的。但链式调用你总写过吧,那就是建造者模式。我举个栗子:这是一个okhttp3使用的栗子: Request request = new Request.Builder() .url(url) .post(requestBody) ...原创 2019-12-05 16:17:43 · 633 阅读 · 0 评论 -
【设计模式】模版方法模式
模版方法模式定义 在父类中定义一个操作的通用具体步骤,将这些步骤的实现细节交给子类来完成。这样可以使得子类在不更改操作的结构下,可以重新定义该操作的具体步骤。简单实例 定义都是空洞乏味的,让我们以一个简单的例子来说明该模式是如何运作的。...原创 2019-07-25 15:39:03 · 1617 阅读 · 1 评论 -
【设计模式】单例模式
单例模式在日常的开发过程中,我们需要使用到设计模式,而单例模式可谓是最常见的一种。正确的使用单例模式,不仅可以降低内存的使用率,也可以提升整个程序的运行效率。下面我来谈谈自己对单例模式的理解。【1】懒汉式特点:(1)是一种牺牲时间换取空间的策略(2)懒加载,只在需要的时候才实例化对...原创 2018-08-13 19:57:51 · 15077 阅读 · 2 评论 -
【设计模式】观察者模式
观察者模式定义 简而言之,观察者模式定义了对象间一种一对多的依赖关系,当某个对象发生状态的变化后,任何关注此对象的观察者会得到通知。观察者模式也成订阅/发布模型,当csdner订阅了该博主,那么当该博主发布一篇博文后,csdner将收到博文的推送,csdn...原创 2019-07-23 17:27:53 · 1363 阅读 · 6 评论