From c91f4b3c154d30d714e2707ab95ec2dd898d68c3 Mon Sep 17 00:00:00 2001 From: Omooo <869759698@qq.com> Date: Wed, 1 Jul 2020 09:47:18 +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 | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/blogs/DesignMode/口水话.md b/blogs/DesignMode/口水话.md index 5f8503a..b84b239 100644 --- a/blogs/DesignMode/口水话.md +++ b/blogs/DesignMode/口水话.md @@ -56,6 +56,15 @@ 工厂模式可以细分为三种类型:简单工厂、工厂方法和抽象工厂。 +当创建逻辑比较复杂时,就可以考虑使用工厂模式,封装对象的创建过程,将对象的创建和使用相分离。何为创建逻辑毕竟复杂呢?主要有两种情况,第一种情况是类似规则配置解析的例子,代码中存在 if-else 分支判断,动态的根据不同的类型创建不同的对象。针对这种情况,我们就可以考虑使用工厂模式,将这一大块的 if-else 创建对象的代码抽离出来,放到工厂类中。还有一种情况是,尽管我们不需要根据不同的类型创建不同的对象,但是,单个对象本身的创建过程比较复杂,比如前面提到的要组合其他类对象,做各种初始化操作,在这种情况下,我们也可以考虑使用工厂模式。 +常见的工程模式有 DataFormat 类、String.valueOf 等等。 + +#### 构建者模式 + +构建者模式即 Builder 模式。如果一个类中有很多属性,为了避免构造函数的参数列表很长,影响代码的可读性和易用性,我们可以通过构造函数配合 setXxx() 方法来解决。不仅可以控制参数的必要性,还可以对参数进行合法性校验。 + +在 Android 中,最典型的应用莫过于 AlertDialog 了。 + +#### 代理模式 -#### \ No newline at end of file