三层、多层结构就像多个人,分别不同负责各自的工作。该知道自己知道的,不该知道自己不知道的。
别八卦,别打听不该自己知道的事。
表示层:
不应该知道的:不应该看到物理的数据存储。不应该有connection strings,Connections,Commands或者类似。
应该知道的:应该知道主要模块。
业务逻辑层:
不应该知道的:不应该知道数据库在哪里。不应该有connection strings,Connections,Commands或者类似。
应该知道的:应该知道业务逻辑,业务流程
数据访问层:
不应该知道的:不应该知道HTML,asp.net,避免知道业务逻辑层里的东西以及是用的哪种数据库。
应该知道的:应该知道怎样访问数据存储层,例如Create, Read, Update, Delete等
数据存储层:
不应该知道的:不应该知道HTML,asp.net。不应该知道使用的是那种语言,中文或者是英文。
应该知道的:数据的存储结构,connection strings,Connections,Commands等
不知道大家都是怎么分层的?
不知道如何区分你的数据访问层与数据存储层.
一个原则是:
任何层仅知道其相邻下层.
但有时候层次的划分是很复杂的. 基本上你应该有一个通用定义的业务实体. 即使你不使用"实体"来实现, 起码应该有一个地方进行数据定义.
这一层, 或者不能叫"层", 应该是各层都可以访问的,
还有, 你的应用应该有一个全局的应用程序框架, 用来处理一些通用请求. 例如安全验证, 日志, 异常处理等等.
除了数据层知道数据库之外, 其他层之间传递的应该是标准的数据对象.