关于软件设计分层的一些思考

从大学开始走程序员这条路近四年了。之前的三年大多是在学习基础知识——也不甚扎实。真正觉得进步比较快的是最近一年,主要原因有两个,一是实习了,二是在做毕业设计,其实归根结底来说,是参与真正项目的开发了就知道要学什么要做什么了。

这两个内容都是做c#和WPF。感触最深的一点就是分层。因为WPF的理念就是设计与逻辑分层,加之我的主业学的是JAVA Web,无论讲MVC还是ssh都涉及到分层的概念。具体的这些术语概念我不啰嗦,百度谷歌一下一大堆。我想要说的有两点:

1.个人对分层的认识

2.学习应该先学理念再学细节

第一点:

无论是桌面应用还是web项目,基本上都可以分为4层,显示层,控制层,逻辑层,数据库访问层。在我的毕设中我用的MVVM框架。个人感觉就是分层之后设计感特别强,各个层次之间分清楚了,在写该层的时候只需要理清直接相邻的两层的关系,提供相应的服务即可,而且因为每个类只处于一层,所以其中的函数都是同一类型的,因此思维极为平坦顺畅;还有就是在Debug的时候,因为各个层次分清了,所以定位错误也就很方便快捷。然而这样也带来一个问题,就是层与层之间的关系需要维护,有些操作需要涉及到两层的东西就比较复杂了,如界面的一些Visibility动态变化等放在ViewModel中总是不太方便,我个人认为,框架的设计是为了方便我们开发,因此我们不必拘泥于严格的这种模式,所以我在View的后台中写了一些界面变化的代码。

第二点:

我们在学一个东西的时候,首先应该掌握其脉络,理解各个部分的大概职能是什么之后,再具体去分块掌握脉络中的各个职能。这样我们知道我们在学什么,学了之后的目的是什么,学完之后我们能做什么。在最后的的这段时间内,很多同学问我问题。懂一些的还好说,大概说一下方向,百度谷歌再思考一下就解决了,最郁闷的是完全跟你的思路不搭的。你说你做个毕设都用了SSH框架了,还在jsp中写访问数据库的代码,这样真的好吗p>

一家之言,不妥之处还望各位多多指正,谢谢。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2014年5月22日
下一篇 2014年5月23日

相关推荐