优点:
分散关注、松散耦合、逻辑复用、标准定义
a. 开发人员可以只关注整个结构中的其中某一层,方便多开发人员间的分工
b. 可以很容易的用新的实现来替换原有层次的实现
c. 降低层与层之间的依赖
d. 利于各层逻辑的复用,有利于标准化
e. 对单元测试的支持更加出色
缺点:
a. 清晰的构架以代码的复杂性为代价, 对小项目优可能反而降低开发效率
b. 降低了系统的性能,例如业务造访数据库现在必须通过中间层来完成
c. 控制层和表现层有时会过于紧密,导致没有真正分离和重用
d. 有时会导致级联的修改,如果在表示层中增加一个功能,为保证符合分层式结构,可能需要在相应的控制层和模型层中都增加相应的代码