12,今天,我写了一个小应用。关于短消息的。需要赋予短消息一个动作---加密。
现在的做法是提供一个接口。securityable(在我的应用中使用了这个名字)。然后,自己写的短消息类,继承这个接口。然后把加密的过程,写入了 短消息这个pojo类当中。
不过现在隐隐的感觉到一点不对劲。因为这种做法违反了单一作用的原则。这个类其实有了两个功能。一个是保存信息。另一个则是处理加密过程。只是在这里,整 个过程会比较简单,所以不会产生太大的问题。
13,紧接着上面的这个例子。在这里个app中,我把分了层。按照常规的,有一个DAO层 中,保存信息的类MsgDAO。还有一个MVC的中C的作用的控制类ControlMsg。(说的有点头晕)
再写这个程序的时候,我一直在想一个问题。就是加密的过程应该放在哪里?MsgDao,ControlMsg或者是Msg。最后的做法是这样放入了 Msg。MsgDao提供一个updatemsg方法。而ControlMsg直接代理了这个加密过程,然后更新。
写这个的目的是为了说明层与层之间的沟通。以前看到过篇帖子讨论,比方说底层的方法A,中间层的方法B直接调用,然后一层一层上去,每一层都是直接代理上 去。这样很繁琐。其实我觉得,层的设计是统一需求。越是底层的东西,就应该越是通用。比方说我这里的MsgDao。其除了更新加密之外,还可以更新这里 Msg的其他信息。而越是高层的方法,则应该慢慢的协调各个类。比如说。这里的ControlMsg。它就需要协调Msg和MsgDao.
14. 其实今天写代码的时候记起一些事情。区分。现在关于这个概念脑子还是朦朦胧胧,所以也写不出什么太特别的门道出来。只有淡淡的意识是通过需求,功能等一些 指标进行区分。把需求和实现分开。功能封装成一个单独的类。把数据和方法分开。
15.写了一个Control作用的类。但是发觉真好难 写。比方说数据如何获取,分来会写入这个Control类。但是索性,最后分了出来。
16.发觉总结好累,但是还是不得不写,就当成是练 手吧。毕竟没有人会一下子做好一件事情。希望以后能越写越好。
17 最近在实现一个很复杂的逻辑。但是在实现过程中,往往总是不断的推翻,重来。推翻,重来。设计了很多。但是没有任何实质上的编码。突然才意识到,原来问题 就出在这里,一切都是在脑子里转,没有实现。也就没有比较。
18.如果Struts的web页面出现乱码问题。修改Struts等配置文 件解决不了问题。可以考虑使用修改server.xml中的配置文件。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>