Android开发笔记(九十)建造者模式

这篇博客探讨了建造者模式在Android开发中的应用,包括基本概念、公开属性和方法的设定,以及如何在创建AlertDialog、Notification和AnimatorSet等场景中使用建造者模式。同时,还介绍了建造者模式在图片缓存框架中的实践。
摘要由CSDN通过智能技术生成

基本概念

建造者模式是一种常用的设计模式,它用于把类的表现和构建分离开来。引入建造者模式的缘由,且看博主下面细细道来。


公开属性

一般我们定义一个类的属性,如果属性是公开的,那可以直接对该类的属性赋值和取值。示例类的代码如下:
public class Person {
	public String name;
	public String password;
	public String birthday;
	public int age;
}

上面的Person类,属性都是公开的,这就带来几个问题:
1、属性名称被暴露了,如果现在要变更属性名称(比如说把name改名为username),那得把所有调用处的属性名都改过来;
2、有时根据业务需求得改变属性的赋值方式(比如说对password进行加密),那也得把所有调用处的属性赋值方式都改过来;
3、有些属性之间存在关联关系,改了一个属性之后,另一个属性值也要跟着变(比如修改了birthday字段,可能age字段也要跟着变);


公开方法

基于以上几个问题,我们在定义类时,一般都是通过set方法对属性赋值,通过get方法读取属性值。示例代码如下:
public class Person {
	private String name;
	private String password;
	private String birthday;
	private int age;

	public void setName(String name) {
		this.name = name.toUpperCase();  //用户名不区分大小写,统一转为大写
	}
	
	public String getName() {
		return this.name;
	}

	public void setPassword(String password) {
		this.password = password; //这里可补充加密操作
	}
	
	public String getPassword() {
		return this.password; //这里可补充解密操作
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday; //这里可根据生日计算年龄,即自动对age字段赋值
	}
	
	public String getBirthday() {
		return this.birthday;
	}

	public void setAge(int age) {
		this.age = age;
	}
	
	public int getAge() {
		return this.age;
	}
	
}

多数情况下,set方法与get方法联合使用,这就足够了。可是有时候,这个类还有其他的动作,比如说Person类还定义了登录动作,登录动作要对该用户的用户名和密码进行校验,如果用户名和密码输入正确,就返回登录成功。但实际业务往往不是这么简单,比如说用户登录期间可能还要输入短信验证码,然后在等待验证码短信时,用户密码因为某种原因发生变化(比如其他地方调用了setPassword方法),造成接收验证码之前密码校验通过,输入验证码之后密码校验反而失败。


建造者模式

为此,建造者模式应运而生,它把对象的表现与构建分离开来,即把对象的使用分为两个步骤:第一步输入各种参数进行构建,此时只能设置属性不能操作业务动作;第二步根据构建好的对象开展业务动作࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值