本文共 5589 字,大约阅读时间需要 18 分钟。
首先,需要定义数据模型,主要的数据抽象是Site、Blog、User,分别代表网站、博文、用户,数据模型如下图所示:
具体成员的含义就不解释了。如果你没用过新浪微博,建议去用一下,或者可以参考http://open.weibo.com/中的开发文档。
这几个类的代码如下:
view plaincopy to clipboardprint? package com.wenbin.test.site; public class User{ private String profileImageUrl="http://tp3.sinaimg.cn/1500460450/50/1289923764/0"; private String screenName="测试"; private boolean verified=false; public User(){ } public String getProfileImageUrl(){ return profileImageUrl; } public String getScreenName(){ return screenName; } public void setProfileImageUrl(String profileImageUrl) { this.profileImageUrl = profileImageUrl; } public void setScreenName(String screenName) { this.screenName = screenName; } public void setVerified(boolean verified) { this.verified = verified; } public boolean isVerified(){ return verified; } }
view plaincopy to clipboardprint? package com.wenbin.test.site; import java.util.Date; public class Blog implements Comparable{ private Date createAt=new Date(System.currentTimeMillis()); private Blog retweetedBlog; private String text="就算把我打的遍体鳞伤也见不得会[泪]?http://blog.csdn.net/caowenbin @移动云_曹文斌 。"; private String smallPic=""; private String source="IE9"; private User user; private Site site; public Blog(){ } public Blog(Site site){ this.site=site; } public boolean isHaveRetweetedBlog(){ return retweetedBlog!=null; } public Blog getRetweetedBlog(){ return retweetedBlog; } public String getText(){ return text; } public User getUser(){ return user; } public String getSmallPic(){ return smallPic; } public void setRetweetedBlog(Blog retweetedBlog) { this.retweetedBlog = retweetedBlog; } public void setText(String text) { this.text = text; } public String getInReplyUserScreenName(){ if (retweetedBlog!=null && retweetedBlog.getUser()!=null) return retweetedBlog.getUser().getScreenName(); else return ""; } public String getInReplyBlogText(){ if (retweetedBlog!=null) return retweetedBlog.getText(); else return ""; } public void setPic(String smallPic){ this.smallPic=smallPic; } public void setUser(User user) { this.user = user; } public int compareTo(Blog another) { int ret=0; if (this.createAt.before(another.createAt)){ ret=-1; } else if (this.createAt.after(another.createAt)){ ret=1; } else{ ret=0; } return ret; } public void setSource(String source) { this.source = source; } public String getSource() { return source; } public void setSite(Site site) { this.site = site; } public Site getSite() { return site; } }
view plaincopy to clipboardprint? package com.wenbin.test.site; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeSet; public abstract class Site{ protected Setblogs=new TreeSet (); protected String name; protected Map faceMap=new HashMap (); public Site() { onConstruct(); } protected abstract void onConstruct(); public Map getFaceMap() { return faceMap; } public Set getBlogs(){ return blogs; } public long getBlogsCount(){ return blogs.size(); } public void addBlog(Blog blog){ blogs.add(blog); } public void removeBlog(Blog blog){ blogs.remove(blog); } public Iterator getBlogsIterator(){ return blogs.iterator(); } public void clearBlogs(){ blogs.clear(); } public String getName(){ return name; } }
view plaincopy to clipboardprint? package com.wenbin.test.site; public class SinaSite extends Site { protected void onConstruct(){ name="新浪微博"; initFaceMap(); } private void initFaceMap(){ faceMap.put("[呵呵]", "hehe"); faceMap.put("[嘻嘻]", "xixi"); faceMap.put("[哈哈]", "haha"); faceMap.put("[爱你]", "aini"); faceMap.put("[晕]", "yun"); faceMap.put("[泪]", "lei"); } }