关于QQ项目的一些总结
2008-07-19 19:35
405 查看
花了数周时间完成了 一个模仿QQ的聊天软件 主要使自己j2se的基础知识能够融汇
1.视图部分
由于是用j2se所制作的视图,而且缺乏可视化工具做起来还是蛮辛苦的。其中的mvc模式算是其中的一个精要吧。不过在这个项目中仅仅用到jtable的一些应用,用于更新表格数据时改动数据模式即可。其它的如布局部分其实并不难,不过很麻烦,调来调去。。
2.通讯部分
通讯部分一开始做的不是很顺利,主要是线程和socket,弄的很乱。其实只要将模式搞清楚都迎刃而解,无非是每当客户端连接到服务端时生成一个socket并产生相应线程,而且对于线程的理解必须是一个代码块,一个程序块这样,才能把它和socket分开。所以说应该是在线程中产生socket。还有就是发包收包的问题,我把协议中的其中一个元素定义为一个类,使得取得元素变得十分简单。还有一个关键点是当用户登录时将其线程和socket用一个类装起来,然后再放到集合中。这样关闭线程,以及发送私聊包等都会变得很容易。(遍历该集合即可)
3.数据存储问题
存储数据用了两个介质,xml以及oracle 并利用了工厂模式+DAO模式 工厂模式使得存储介质的转换变得十分容易(利用静态方法DAOfactory.createDAOIMPL() )可以完成不同的实现。DAO模式也是数据存储中利用十分广泛的模式。总的来说就是将数据库中的数据持久在一个类中,然后再通过实现完成。
4.代码结构问题
代码各个功能块耦合度过高,而且不是用单态模式而是将其实只实例化一次的类用传递的方式进行引用。嗯,写起来容易乱,而且也是不够巧妙的设计。总之改进的地方还有好多。很多功能其实都可以作为一个方法进行多次调用,不过由于没考虑清楚也没做成。失败。。
1.视图部分
由于是用j2se所制作的视图,而且缺乏可视化工具做起来还是蛮辛苦的。其中的mvc模式算是其中的一个精要吧。不过在这个项目中仅仅用到jtable的一些应用,用于更新表格数据时改动数据模式即可。其它的如布局部分其实并不难,不过很麻烦,调来调去。。
2.通讯部分
通讯部分一开始做的不是很顺利,主要是线程和socket,弄的很乱。其实只要将模式搞清楚都迎刃而解,无非是每当客户端连接到服务端时生成一个socket并产生相应线程,而且对于线程的理解必须是一个代码块,一个程序块这样,才能把它和socket分开。所以说应该是在线程中产生socket。还有就是发包收包的问题,我把协议中的其中一个元素定义为一个类,使得取得元素变得十分简单。还有一个关键点是当用户登录时将其线程和socket用一个类装起来,然后再放到集合中。这样关闭线程,以及发送私聊包等都会变得很容易。(遍历该集合即可)
3.数据存储问题
存储数据用了两个介质,xml以及oracle 并利用了工厂模式+DAO模式 工厂模式使得存储介质的转换变得十分容易(利用静态方法DAOfactory.createDAOIMPL() )可以完成不同的实现。DAO模式也是数据存储中利用十分广泛的模式。总的来说就是将数据库中的数据持久在一个类中,然后再通过实现完成。
4.代码结构问题
代码各个功能块耦合度过高,而且不是用单态模式而是将其实只实例化一次的类用传递的方式进行引用。嗯,写起来容易乱,而且也是不够巧妙的设计。总之改进的地方还有好多。很多功能其实都可以作为一个方法进行多次调用,不过由于没考虑清楚也没做成。失败。。
相关文章推荐
- 项目q总结:关于Linux性能问题的一些思考
- 项目总结之关于JQuery一些常用的函数
- 一些关于MyEclipse导入web项目的小总结
- 关于项目外包的一些总结
- 关于项目上运用SSO单点登录技术的一些总结
- 团队项目--关于QQ项目的运行和总结
- 最近做项目的一些关于重构方面的总结
- 关于项目中异常处理的一些总结
- 关于地图拍照上传项目的一些总结
- 关于做项目的一些总结
- 关于ionic开发的一些总结(项目启动设置,app图标名称更改)
- Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
- 关于项目中异常处理的一些总结
- Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
- 关于**活动项目上线之后的一些总结
- Spring MVC学习总结(5)——SpringMVC项目关于安全的一些配置与实现方式
- 关于jeesite开源项目的一些使用总结
- 关于地图拍照上传项目的一些总结
- 关于乱码的一些总结--项目过程的点点滴滴
- 关于项目中异常处理的一些总结(转)