在 Shimeji开源桌宠代码学习(1)中描述了整个配置文件加载的过程,其中很多地方使用了Builder这一概念,首先我们先来看看这些Builder都有什么特征,我认为我们从AnimationBuilder即最下层的Builder来看起,应该更容易找到其特点,首先是AnimationBuilder的定义,它主要有两个实例变量
private final String condition;
private final List<Pose> poses = new ArrayList<Pose>();
里面使用的Pose类是这样定义的:
public class Pose {
private final ImagePair image;
private final int dx;
private final int dy;
private final int duration;
public Pose(final ImagePair image) {
this(image, 0, 0, 1);
}
public Pose(final ImagePair image, final int duration) {
this(image, 0, 0, duration);
}
public Pose(final ImagePair image, final int dx, final int dy, final int duration) {
this.image = image;
this.dx