这是一个很无聊的作业。大约花了我一天的时间。
介绍下实验工具
邮件服务器用winmail
编程工具用Eclipse
键盘是cherry的红轴机械键盘高键位(不伤手,用立白)
桌子是自由升降桌(站着编程,有利于身体骨骼健康)
首先为了便于程序之间的数据交换,要先设计几个结构体
分别是
GlobalVar 用于存储全局数据,如服务器地址,端口号
UserInfo 存储用户的用户名和密码
GetMailInfo存储接受的邮件信息
MailList 建立一个链表,存储从服务器得来的所有的邮件,里面没一个数据是一个GetMailInfo
SendMailInfo发送邮件的数据结构
public class GlobalVar {
public static String serverHost="192.168.153.133";
public static int SMTPPort=25;
public static int POP3Port=110;
}
public class GetMailInfo {
public String received_from;
public String subject;
public String content;
}
public class SendMailInfo {
public String serverHost="192.168.153.132";
public int serverPort=25;
public String mail_from;
public String rcpt_to;
public String subject;
public String from;
public String content;
}
public class UserInfo {
public String serverHost;
public int serverPort;
public String user;
public String password;
}
mailList.java
import java.util.LinkedList;
public class MailList {
LinkedList<GetMailInfo> mails;
public MailList()
{
mails=new LinkedList<GetMailInfo>();
}
public void putMail(GetMailInfo mail)
{
mails.push(mail);
}
public GetMailInfo getMail()
{
return mails.pop();
}
public int mailCount()
{
return mails.size();
}
}
软件的架构。
采用了一定的分层架构。当然不是MVC。因为我并没有把软件的输入和程序的逻辑分开,这个实在不应该。在处理发送邮件和接受邮件的指令流上,我的设计模式是模板(GetMailTemple和SendMailTemple),向模板类传入适当的数据类&#