
设计模式
菜鸟的奋斗ing
最穷不过讨饭,不死终将翻身
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
代理设计模式详解(java版本)
今天给大家详细的介绍一下23中常用的设计模式中的代理设计模式,代理模式分为两种,分别为静态代理和动态代理。 意图:为其他对象提供一种代理以控制对这个对象的访问。 解析: 1,其他对象:目标对象,想要访问的对象,常被称为被委托对象或被代理对象。 2,提供一种代理:这里"一种"两个字比较重要,为什么不是提供一个呢?一种代表了某一类,即代理类和被 代理类必须实现同一接口,这个接口下的所有实现类都...原创 2018-10-31 09:43:57 · 275 阅读 · 0 评论 -
java监听设计模式(java观察者设计模式)
今天给大家分享一下观察者设计模式(监听设计模式),该模式在很多主流得框架、源码中使用率非常高。在分享之前先给大家讲一个我们使用手机的一个场景,我们都用过手机,当我们手机来电话的时候,会有各种复杂的操作,比如会响铃、手机震动、屏幕会亮屏等等,大家有没有考虑过这个场景是怎么实现的呢?其实这个地方就是使用了观察者设计模式。 在上述例子中,如果不使用观察者设计模式,要怎么设计比较合理,任何一种设计模式的...原创 2018-11-06 18:59:52 · 1116 阅读 · 0 评论 -
单例设计模式的几种写法(java版本、超详细)
简介 单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。这篇博客很精彩哦,请一定要耐心看完哦 在Java设计模式中,单例模式相对来说算是比较简单的一种构建模式。适用的场景在于:对于定义的一个类,在整个应用程序执行期间只有唯一的一个实例对象。如Android中常见的Application对象。 基本思路 单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得...原创 2018-11-07 21:58:09 · 485 阅读 · 0 评论 -
工厂设计模式(java版本、spring源码中使用的工厂模式)
最近在学习spring源码,发现在IoC容器初始化的时候创建各种bean,然后在代码中看到各种beanFactory和factoryBean,很显然spring容器在创建bean的过程是使用了工厂设计模式,那么正好总结一下工厂设计模式。 工厂模式分为简单工厂、工厂方法、抽象工厂三种 一、简单工厂 简单工厂的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类 spring中创建b...原创 2018-12-07 10:30:39 · 2096 阅读 · 4 评论 -
深入理解适配器设计模式(java版本)
前言: 最近在学习mybatis的源码,发现了里面用了非常多的设计模式,今天就来总结一下从mybatis源码中看到的适配器设计模式。为什么一些经典的优秀的框架能够经久不衰呢?不仅仅是因为他们的功能强大,而是在于源码里面的思想,用到的设计模式非常灵活。这就是我们为什么一定要去阅读一些优秀的开源框架的源码,从源码中理解设计模式会发现比我们从书本上看到的更容易理解,从而是我们更容易思考在我们写代码时什...原创 2018-12-15 22:34:21 · 269 阅读 · 0 评论 -
装饰者设计模式(java版本)
引言 相信大家都在外面吃过烤鱼,我们吃烤鱼的时候是不是都会点一些配菜放到烤鱼里面一起加热煮熟着吃,那么这些配菜肯定是根据个人的爱好添加的,有的人喜欢海带、金针菇、有的人喜欢粉丝、青菜等等,这些配菜的价格肯定是不一样的。不管加入什么配菜,最后的价格都是烤鱼的价格+配菜的价格,烤鱼分为黑鱼、草鱼、鲇鱼。那么我们如何来计算最终烤鱼+配菜的价格呢? 方法一:继承 这里我就只画出uml图了(仅仅是...原创 2018-12-19 09:42:37 · 331 阅读 · 0 评论 -
模板设计模式(java版本)template pattern
一、引言 场景:相信我们这个年龄的男人,绝大部分都会煮饭吧。那么我们通常通过加入水的多少来决定是煮粥、饭、硬饭、软饭。煮饭的步骤包括淘米、加水、淘好的米加适量的水(看自己的需求)放到电饭煲中煮就ok了。不管是煮饭、煮粥、软饭都包括上面的三步、唯一不同的就是加入的水的量。 如何用代码实现上面的场景呢? 思考与分析 1,不管是煮饭还是煮粥...都有重复的过程,就是淘米和放电饭煲上面煮,那么首先...原创 2018-12-24 18:53:13 · 363 阅读 · 0 评论 -
动态代理的两种方式以及优缺点
前言 动态代理应用非常的广泛,在各种开源的框架中都能看到他们的身影,比如spring中的aop使用动态代理增强,mybatis中使用动态代理生成mapper,动态代理主要有JDK和CGLIB两种方式,今天来学习下这两种方式的实现,以及它们的优缺点 动态代理:是使用反射和字节码的技术,在运行期创建指定接口或类的子类,以及其实例对象的技术,通过这个技术可以无侵入的为代码进行增强 一、JDK实现的...原创 2019-03-20 14:55:44 · 8646 阅读 · 2 评论