这些天在阅读《企业应用架构模式》这本书的电子版,文章开篇就三层模式展开阐述,讲述三层模式产生的背景昨天刚看到第一部分的3.1–架构模式;现在想就我所看的做个总结:
三层架构即就是常用的MVC(Model-View-Controller)架构,即就是模型-视图-控制器;Model采用面向对象抽象出来的实体,对应于数据库中每一条记录,该层作为软件数据的载体;View只提供数据、信息的显示,不参与业务逻辑处理;Controller则具体操作业务逻辑的处理,针对项目的复杂程度来考虑是否需要service层;采用分层的优势到底在哪里?能非常便捷的重构项目,轻松的更换数据载体(数据库)、表现方式(网页、报表等),如业务需求发生变化只需要在逻辑业务层修改即可;至于更多的优点参考Google、bing或者sogou(现在觉得sogou比baidu搜索质量好);三层的劣势:过多的分层导致软件效率下降;层次不能封装所有东西,可能给我们讲带来级联修改(如果在界面增加显示一个数据域,可能需要在数据库增加字段,从而影响级联修改)–参考本书的说法。
为什么使用三层架构?因为他给我们带来方便,给我软件编程一个清晰的思路;相反,针对一个软件功能,你可能很快就开发出来,但是对于code的整理和思路的塑造可能显得比较混乱,冗余;也许,作为一个专业的软件开发人员,你觉得code组织得便不混乱,而针对一个非专业人员来审视你的code组织就显得相当疲惫;
从我开始接触软件编程的时候,映入我脑海中最多的词就是三层MVC架构,吹嘘的最火的框架Framework就是SSH(Struts+Spring+Hibernate)或者SSI(…+Ibatis);但是现在回想,是不是有点笨重的感觉,我只想做一个简单业务即可上线,这样华大力气去开发是不是值得?所以,现在很多都是用SpringMVC+JDBC templete进行开发,相对来时简单易行,不至于显得比较沉重;Java对我的感觉是一个重量级的coding language,现今的新秀如Ruby等,快速开发轻巧便捷(my feeling);模模糊糊的差不多一年,正好今年也毕业,经过社会的大熔炉的煅烧,企业项目的磨练,对软件编程有点隐约的架构思想;这不,小小的整理思路于此,供指正与建议。