设计模式
文章平均质量分 91
设计模式
IT-Lenjor
Just do the things you can do better.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
适配器模式(Adapter pattern)
文章目录定义适用场景示例代码测试结果:总结定义适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。适用场景1、 你想使用一个已经存在的类,而它的接口不符合你的需求2、 你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的...原创 2020-01-15 00:54:06 · 282 阅读 · 0 评论 -
装饰模式(Decorator Pattern)
定义装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。应用场景从定义可以得出,装饰模式的作用是在不改变原来对象的情况下,往对象添加一些特定功能,符合对象的修改封闭——扩展开放原则特点(1) 装饰对象和真实对象有相同的接口。这样客户端对象就能以和真实对象相同的方式和装饰对象交互。(2) 装饰对象包含一个真实...原创 2019-03-15 22:11:37 · 149 阅读 · 0 评论 -
工厂设计模式(Factory Pattern)
简单工厂设计模式工厂设计模式可以分为:简单工厂,工厂方法,抽象工厂 有的人说简单工厂其实并不属于一种设计模式,其实简单工厂的设计方法在日常的代码中还是会使用到的。 讲简单工厂主要是为了后面的两种设计模式做铺垫。工厂:就是生产产品的的场所,而所生产的产品又不是单一的,如一个生产手机配件屏幕的工厂,生产的屏幕有SamSung Note 9屏幕,有One Plus 6T 的屏幕,有OPPO ...原创 2018-11-04 02:41:03 · 179 阅读 · 0 评论 -
模板方法模式(Template Method Pattern)
定义业务场景UML图代码表现模板方法类具体支付类运行main方法示例定义模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。什么叫做模板?既然是模板,那么就是说我使用这个模板必须要遵循模板的设计原则,以达到规范业务代码的作用业务场景小A是一间公司的程序员,老板让他开发一个...原创 2019-03-16 17:49:25 · 224 阅读 · 0 评论 -
单例模式(Singleton pattern)
文章目录为什么要使用单例模式饿汉式懒汉式单例模式的其他实现方式静态内部类实现枚举实现破解单例反射破解法反序列化破解法总结为什么要使用单例模式单例模式属于上篇说过的设计模式三大分类中的第一类——创建型模式。顾名思义,单例设计模式就是为了保证创建出来的对象实例只有一个。通过控制创建对象的数量,节约系统资源开销。有些场景下,不使用单例模式,会导致系统同一时刻出现多个状态缺乏同步,用户自然无法判...原创 2019-09-30 11:00:38 · 164 阅读 · 0 评论 -
代理模式(Proxy pattern)——静态代理、动态代理
文章目录定义组成部分静态代理静态代理分析动态代理(这里以JDK的动态代理为例,动态代理一般有两个主流实现:①JDK,②cglib)动态代理分析动态代理的优点总结定义设计模式来源于生活,这次讲的代理模式也是生活中非常常见的一种场景,如:中介,媒婆,黄牛,VPN网络代理。代理模式:对某一个目标对象提供它的代理对象,并且由代理对象控制对原对象的引用。代理类负责为委托类预处理消息,过滤消息并转发消息...原创 2019-10-02 22:29:11 · 348 阅读 · 0 评论 -
手写JDK动态代理(Implememt your own JDK dynamic proxy)
文章目录手写自己的动态代理需要重写那些内容动态生成的 $Proxy0 对象长什么样?反编译$Proxy.class代码分析实现动态代理的关键实现完整代码自定义代理类实现测试方法运行结果总结手写自己的动态代理需要重写那些内容首先我们来看看,上一篇文章代理模式(Proxy pattern)的动态代理类中,使用到了那些内容,从中找出需要重新实现的类和方法。动态生成的 $Proxy0 对象长什么样...原创 2019-10-03 14:29:39 · 271 阅读 · 0 评论 -
策略模式(Strategy pattern)——简单工厂&反射实现
文章目录定义示例代码场景描述源代码支付简单工厂(switch 和反射两种实现)测试客户端运行结果总结定义策略模式:指的是对象具备某个行为,但是在不同的场景中,该行为有不同的实现算法。举个几个生活的例子,就是不同收入的人群采用不同的税率,登录的不同方式,支付的不同方式;在代码我们也见过策略模式,如ArrayList的排序传入的Comparator ArrayList list = n...原创 2019-10-03 17:29:28 · 504 阅读 · 0 评论
分享