今天对于怎么去写程序好像有了新认识

关于逻辑

首先是要有自己的逻辑,就是你想怎么去完成这个功能。

比如这里:

然后我就会想着服务器管理者应该是只有一个的,那么应该用个单例模式写。不过首先是要先写底下的被别人引用的类

然后再考虑在别的类中怎么引用,然后通过按照你的逻辑去通过代码实现。

举例子,比如服务器管理者这里,需要管理一个生产者和消费者的连接,然后首先考虑用什么数据结构存储起这些连接。当消费者通过一个socket连接到服务器,那么服务器这边可以通过一个List来存储这些连接。然后管理者就可以通过管理这个List里面的东西(基本就是增删查改),来管理整个连接池。然后管理者觉得要自己管这么多太累了,想呀别人去管。那么可以通过List里面存放线程,一条线程管一个socket连接。每次来了socket,就把这socket交给一条新线程,再把这线程加进管理者管理的List中,那么就可以通过管理线程去管理socket了。这里用到了分层的思想。同样的道理,线程里面又可以按照一定的逻辑选择合适的数据结构和算法去管理每个socket连接。


关于调试

下午调试的时候有了点经验:

  • 当不知道程序有没有执行你的那部分代码的时候,可以在那部分代码前后各加输出语句。
  • 当不知道程序有没有进去选择分支结构或者循环等结果时候,输出一下你的判断条件。很可能是你以为他是true,其实他是false。