From 4101d6d250360ce662a38fbeb1b29fcf65a19903 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Wed, 1 Jul 2020 11:24:42 +0800 Subject: [PATCH] =?UTF-8?q?Update=20=E5=8F=A3=E6=B0=B4=E8=AF=9D.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blogs/DesignMode/口水话.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/blogs/DesignMode/口水话.md b/blogs/DesignMode/口水话.md index 3548bbd..bd7cff0 100644 --- a/blogs/DesignMode/口水话.md +++ b/blogs/DesignMode/口水话.md @@ -82,6 +82,13 @@ #### 适配器模式 +适配器模式就是用来做适配的,它将不兼容的接口转化为可兼容的接口,让原本由于接口不兼容而不能在一起工作的类可以一起工作。适配器模式有两种实现方式:类适配器和对象适配器。其中,类适配器使用继承关系来实现,对象适配器使用组合关系来实现。 +适配器模式的应用场景有:封装有缺陷的接口设计、替换依赖的外部系统、兼容老版本接口、适配不同格式的数据。 + +在 Android 中最常见的适配器模式就是 RecyclerView 的数据适配器了,Java 中的 Arrays.asList 也可以看做一种数据适配器,将数组类型的数据转化为集合数据类型。 + +结合上面所讲的代理模式和装饰者模式,这三种模式都属于结构型模式,也都可称为 Wrapper 模型,也就是通过 Wrapper 类二次封装原始类。但这三种设计模式的用意完全不同,也就是说要解决的问题、应用场景不同。代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是控制访问,而非加强功能,这是它跟装饰器模式最大的不同。装饰器模式是对原始类功能进行增强,并且支持多个装饰器的嵌套使用。适配器模式是一种事后的补救策略,适配器提供跟原始类不同的接口,而代理模式、装饰器模式提供的都是跟原始类相同的接口。 + +#### 观察者模式 -#### \ No newline at end of file