目的
避免上层代码进行空指针异常检查和保持上层代码的可读性和简洁性
例子代码
今年你妈逼你结婚了么? 程序猿的单身, 每到情人节, 七夕节, 1024 程序猿节甚至本来是单身狗保护日的双十一, 我们都被无情的秀恩爱秀了一脸, 最可怕的是到了过年回家, 面对七大姑八大姨的质问, 一句大侄子处对象了么, 一句还没呢足以让你成为接下来半小时的重点照顾对象(是不是眼光高呀, 我们村有个叫兰兰的不错, 你是不是 gay 呀), 对于这种情况我只有以下三点要说: …
父母这面更是花式催婚啦, 什么看奶粉广告(你看电视这大胖小子, 多可爱), 什么暗语(你前面有 10 条巷子, 9 条有危险, 你要怎么走过去)
那我们需要假装自己有对象, 这样大家就不会对你抛出空指针异常警告, 可是我们是老老实实的程序猿, 并不会编造一个女朋友(那这就是 mock 啦). 我们只是根据实际情况作答
我们需要一个女朋友的定义, 大致如下:
/**
* 女朋友属性
*/
public abstract class AbstractGirlFriend {
/**
* 查询姓名
* @return
*/
protected abstract String queryName();
/**
* 查询年龄
* @return
*/
protected abstract int queryAge();
/**
* 查询 cup
* @return
*/
protected abstract Character queryCup();
/**
* 是不是女性
* @return
*/
protected abstract boolean isFemale();
}
我们定义一个抽象男人类, 返回女朋友类.
/**
* 男人
*/
public abstract class Man {
/**
* 得到女朋友
* @return
*/
public abstract AbstractGirlFriend queryGirlFriend();
}
定义了二个实现类:
别人:
/**
* 其他人
*/
public class Others extends Man {
@Override
public AbstractGirlFriend queryGirlFriend() {
ret