// UserService.java
public class UserService {
public interface UserTemplate{
User createUser(int id);
}
public static List<User> userList(ArrayList<Integer> ids,UserTemplate userTemplate){
if(ids == null || ids.size() < 1){
return null;
}
List<User> users = new ArrayList<>();
Iterator<Integer> it = ids.iterator();
while(it.hasNext()){
users.add(userTemplate.createUser(it.next()));
}
return users;
}
}
// UserTemplateImpl.java
public class UserTemplateImpl {
public static Icon userIcon(String iconString){
//...
}
public static String userName(int uid,String name){
//...
}
/**
* 只显示用户的 id/昵称/头像
*/
public static class userInfoLite implements UserService.UserTemplate {
@Override
public User createUser(int id) {
UserLite userLite = UserService.getUserLiteInfo(id);
return new User(id,userName(id,userLite.getName()),userIcon(userLite.getIcon()));
}
}
}
调用的时候
UserService.userList(ids, new UserTemplateImpl.userInfoLite())