C/S不一定两层,就像B/S也不一定三层一样,平时所谓的三层C/S一般指Client-Router/Server-DB,即客户端-中间件-服务,此处的Router与Server比较模糊,中间件部分其实可以分为两部分,一部分是纯的网络路由服务,通过该网络路由服务可以组织成复杂的通信网络架构,另一部分是应用服务,应用服务主要涉及到业务层概念,即相关业务逻辑流程可以在应用层进行复杂的组合,完成不同要求的业务流。DB就简单了,完全是数据库实现部分。有的时候也会把Server部分也就是业务流程实现部分放到DB里做,但不建议这么做,这么做会增加DB的负担及降低业务流程组织的灵活性。两层的C/S就是客户端直接与数据库相连了,一般基本不会这么做,从安全性角度来说,这么直接链接很容易出现安全问题,数据库的访问很难控制,所以目前大部分的B/S及C/S都是有中间层的。你可以随便到网上搜索一下中间件产品,相关产品多如牛毛。
其实还是MVC的问题
你理解三层有点问题
三层不是说C/S就是C和S两层
如果这样说的话,BS不也是只有B和S两层么?
三层说的就是MVC
BS和CS都有MVC
M:model,模型层,一般都是实体类什么的
V:view 显示层,就是和用户交互的那一层,这层只负责显示数据和接收用户输入,但是用户输入的数据是不是合法,则需要下一层:
C:controler 控制层
这一层在程序中的作用不能忽视掉,验证一些输入,程序的调度,都是通过这一层来实现的。
比如实现一个用户注册:
V层接收用户输入的数据,提交给C层,C层验证用户输入的数据是否合法,如用户名是否格式正确,调用Dao层方法该用户名是否已经存在等等
最后当然还需要数据库操作层来对数据库进行操作
C/S不一定两层,就像B/S也不一定三层一样