各位大侠,我现在要写一个逻辑层,逻辑层的类是按表区分,还是按功能区分?还有一个问题,我的data层只是操作数据库返回值,就是逻辑层传命令结构体,返回数据集结构体。SQL语句和业务限制都在逻辑层中编写,这样会有问题吗?
解决方案 »
- |ZYCWPF| RichTextBox的光标位置改变是哪一个事件?谢谢
- 关于部署的问题,急。
- c#列名无效的问题
- 请教一个多线程管理的问题
- 删除服务器图片问题
- name=12345,点击确定按钮,如何生成一个保存name信息的xml文件啊?
- 高分求一种比较好的数据设计方式(2张表)
- winForm的DataGrid,有一个checkBox列,如何改变该列的背景色?
- 各位兄弟,小弟求一个简捷的算法,借用您的智慧。 谢谢,希望参与,看谁聪明!!!
- 为啥tcp连接获得的客户端ip地址不对?详情见内,高分求答案
- 已经装有vs2005 vs2008共用无影响,但是卸载vs2005会有影响吗?
- 打印问题~
然后:
逻辑层是按照表来区分。sql语句和业务限制都在逻辑层编写???
我晕。我怀疑最简单的三层懂不懂啊业务限制一般都在前台写的。逻辑层一般都是写方法名的。data就是实体层就是写sql语句的。这些是最简单的三层了···
-----------
你认为是一个原子操作就放在数据层。是一个功能原子操作就放逻辑层。sql也可以包含逻辑。------------
往往看是不是一个事务操作来断定放入which tier!
如果要关联表,关键是看你的表需要什么····一般小项目左联表即可。。join left 这样就可以达到索引2张表了
一:用户逻辑(页面逻辑)
二:业务逻辑(访问数据库)
三:实体类(数据库对应字段)
设计一整套业务层接口功能,只要考虑UI层与业务逻辑层,涉及中间的实体数据模型,
而不需要考虑数据库
DAL与时具体业务分离
当然是功能。逻辑层设计时,完全不考虑数据库表的,不然怎么会分出高低呢,低层的用来实现高层的,高层的用来对表现层彻底隔离那些阻碍它写出好的交互程序的杂乱和纠结的东西。设计表现层时完全不考虑“数据库是什么”的问题,应该假设根本不使用数据库来实现。如果你的数据库很少改变,要求也不高,使用sql语句也是可以的。只不过要考虑开发的效率问题,使用一些比较好的sql helper之类的就可以了。说白了,为了设计出好的客户端程序,核心就是将表现层跟数据库分离,这就是三层。这个观念最重要,而至于具体低层的写法则是其次的。
我几乎没有什么小程序代码。偶尔需要写个demo,一般只用10几分钟,写完、发出去之后就丢弃了。比较实际的程序,哪怕只有几十行,往往都是放到上百万开发费的项目中作为比较核心的引擎用的。其实许多东西就是因为你已经提出来了,我只是给你一个确认而已。我的目的并不是让外人能看懂,所以你也没有必要一定要我给一堆垃圾代码用来模仿。我看到你自己其实已经写出来了,只是缺少在努力几分钟就能做好的关键环节,我只是给你个建议而已。
设计不是看代码,用一张纸画一画你的表现层跟业务服务必须进行什么通讯,就行了。比如银联卡的提款机,它肯定要到银联的服务器上去验证用户输入的密码是否正确,它不能自己说了算。你按照系统分析的思路,把不同的系统接口,它们之间交互的消息交互行为(UML中叫做时序)搞清楚,有20个就算20个,有100个就算100个,这就是业务逻辑层要提供的服务功能。有了细节,了解涉及不同子系统的什么角色,实体的结构是什么,才分类。而不是从别人那里听个什么类的概念,然后自己死抠、分解细节。难做到的就是,许多人不去花心思写清楚必要的交互细节,就去搞概念了。服务是独立的,一套设计独立的好的服务,往往可以支撑起上百个不同种类的客户端软件。客户端软件千变万化,而它们都可以靠同一套业务逻辑服务来提供给不同的人,看似不同的应用系统,甚至运行在不同的硬件平台上。所以业务逻辑服务不是跟应用的窗体,或者非常低端的数据库表之类的一一对应,重点是从分析表现层再千变万化时到底需要什么样的业务服务,与之交互的一步一步过程是怎样么样的,然后独立地编写业务服务代码。你把业务服务代码所在的工程(或者说是与其通讯的代理工程)引用到其它表现层的程序工程中,也就立刻可以被其它客户端系统使用同一套服务了。
设计模式很多种,你在具体的实践中多做,你自然会找到一些好的设计方法,这就是设计模式
PS:业务逻辑层就是处理业务的,基本就是对功能的实现,简单来讲就是写通用的功能块被重用