![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
平头哥的技术博文
不忘初心,方得始终
展开
-
为什么用枚举类来实现单例模式越来越流行?
前言单例模式是 Java 设计模式中最简单的一种,只需要一个类就能实现单例模式,但是,你可不能小看单例模式,虽然从设计上来说它比较简单,但是在实现当中你会遇到非常多的坑,所以,系好安全带,上车。单例模式的定义单例模式就是在程序运行中只实例化一次,创建一个全局唯一对象,有点像 Java 的静态变量,但是单例模式要由于静态变量,静态变量在程序启动的时候就要创建,会造成大量的资源浪费,好的单例模式...原创 2019-08-27 21:37:04 · 4087 阅读 · 4 评论 -
看完这篇你还不知道这些队列,我这些图白作了
队列(queue)是一种采用先进先出(FIFO)策略的抽象数据结构,即最先进队列的数据元素,同样要最先出队列。队列跟我们排队买票一样,先来排队的肯定先买票,后来排队的的后买到票。队列如下图所示:队列有两个重要的概念,一个叫队头,一个叫队尾,队头指向的是第一个元素,而队尾指向的是最后一个元素。队列跟栈一样也是访问受限制的,所以队列也只有两个主要的操作:入队(enqueue)操作 和 出队(dequ...原创 2019-08-30 21:30:23 · 4932 阅读 · 18 评论 -
Java Builder 模式,你搞明白了么?
建造者模式定义建造者模式又叫生成器模式,它属于对象创建型模式,是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。下图是建造者模式的通用类图:在建造者模式中,有如下4种角色:Product:产品角色Builder:抽象建造者,定义产品...原创 2019-09-02 21:07:50 · 1722 阅读 · 0 评论 -
工厂模式,从第三方登录说起
现在的很多平台在登陆的时候,下面都会有一排选项,可以选择微信、QQ、微博账号等登陆,这些账号对平台来说都是第三方账号。第三方账号登陆是最近几年流行起来的,第三方账号登录一般都是基于OAuth2.0协议开发的。如果你不了解OAuth2.0协议,可以自行百度,也许会对你看这篇文章有所帮助。现在由于公司要给平台引入流量,为了降低注册门槛,让更多的人来使用你们的平台,领导决定在你们的平台上接入第三方账号...原创 2019-09-17 21:15:07 · 6868 阅读 · 9 评论 -
观察者模式,从公众号群发说起
每个人应该都订阅了不少微信公众号,那你有没有注意到微信公众号的消息呢?你订阅的公众号号主每发布一篇文章,你都会主动的接收到文章的推送,并不需要你点开每个订阅的公众号一一查看有没有更新,是不是觉得有点意思?感兴趣?那就接着往下看吧,因为接下来我们要模拟公众号群发的场景。要模拟公众号群发,首先需要简单的了解一下公众号的特点,对于公众号的特点,我总结了以下三点:每个公众号会有多名订阅者,公众号跟订...原创 2019-09-19 21:47:55 · 3159 阅读 · 6 评论 -
装饰者模式,从吃黄焖鸡开始说起
黄焖鸡米饭最热卖的外卖之一,国人都喜欢吃,吃过黄焖鸡米饭的应该都知道,除了黄焖鸡米饭主体外,还可以添加各种配菜,如土豆、香菇、鹌鹑蛋、青菜等。如果需要你来设计一套黄焖鸡米饭结账系统,你该如何设计呢?前置条件:主体:黄焖鸡米饭 价格:16,配菜:土豆 价格:2、香菇 价格:2、鹌鹑蛋 价格:2、青菜 价格:1.5这还不简单?看我的,你随手就来了下面这段代码。public class Hua...原创 2019-09-23 11:57:03 · 7602 阅读 · 18 评论 -
模板方法模式,从网站登录开始说起
现在的互联网上,想必每个网站都有登录功能,拿我们技术人员常逛的技术网站CSDN、掘金、博客园等为例,它们都有登录功能,而且它们的登录流程都差不多,如果我们把这些网站的登录流程用代码模拟出来,该怎么弄呢?在模拟流程之前,先来分析这个登录流程,其实不管哪个网站,登录流程都是以下四步:1、跳转到登录页面2、输入用户名和密码3、点击登录按钮4、跳转到首页我们就照着这个流程来用代码来模拟网站...原创 2019-09-25 12:32:06 · 1828 阅读 · 1 评论