解决方案 »
- 怎么把datatable 内的数据赋值到 textbox中。。
- 在winform中怎么绑定listview ??
- winform中如果屏蔽datagrid的ctrl+A
- 网络爬虫 千分赠送
- 控制台应用程序不能调用forms吗
- 强制类型转换 和 Convert 到底有什么区别??
- 字符串代码出错
- 如何禁用ctrl+alt+del键和alt+tab键和ctrl+shift+esc键??
- C#中如何处理(增加和读取)ORACLE中的对象数据
- .NET类库中怎么进行网络字节序的转换?
- vs2010的问题
- 异常详细信息: System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
程序比较庞大的时候分层的效果比较明显,降低层之间的耦合,逻辑复用度高。
比如楼主提到的common 基础类,不就是这个思想么。比如:在每个修改数据库的动作前都要先去数据库验证客户的合法性,那么便把“验证客户的合法性”抽出来放在逻辑层,同时在 数据层 定义“客户信息”的数据模型。而“客户信息”的数据模型 在客户管理模块也会用到。这样能让每一层的代码简洁一些,分工也更加明确。
数据层只提供数据,不做任何业务处理。判断,验证,加工,处理,那是逻辑层的工作。当然,上面这些仅是自己的想法而已。楼主可以参考下流行框架。
这是一个开发成本,维护成本,资源成本的综合问题。
(2)增加了代码量,并且使得代码调试变得困难。如果每层只有一个实现,那么还得写一次接口,再写一次实现。因为层与层通过接口通信,所以静态状态下无法知道是什么代码出了问题。
(3)降低了性能,分层依赖反射实现层的加载和替换,加上分层本身增加的代码,使得性能调优变得困难(为调优可能要改变接口,改变接口要修改所有实现,回到(1))。
(4)增加了不必要的复杂度,复杂的东西容易出错,难以维护,这是常识问题。三层的谬误:
(1)三层有利于协作开发。这是扯淡,除非这个作坊刚好3个人。如果10个人,难道分10层?
(2)三层可以提高代码的质量,提高效率等等,扯淡,如果团队本身是新手构成的,三层的复杂度只会让团队更有效率制造垃圾。又一句经典的话是,这个世界上再也没有比有效地做无效的事情更无效的了。
(3)三层有利于什么企业开发,适合开发什么大项目……这些都是传言。的确有分层架构的大项目,但是所占的比例并不高。即便分层,也不能说明用了三层就是大项目(刘翔早上都要吃个鸡蛋,不等于吃了鸡蛋的都能跑得快)
(4)分层增加了灵活性,恰恰相反,分层只能使得代码笨重和不灵活。
(5)MVC就是三层,什么DAL BLL PL(很多业余菜鸟管PL叫UI层,莫名其妙)三个类互相引用下就是三层,这些根本就是照猫画虎或者盲人摸象。总之,在很多人看来,三层就是个筐,软件开发什么问题都往里面装,加上三层百病全消,之所以人家消了自己没有消,还得反省自己是不是没有领悟三层……有很多人觉得人家都搞三层,那三层一定有它的好处。这些想法说明这些人的智力、逻辑分析能力之差真的不如去搞传销算了。