自定义实体(强类型)将会贯穿整个业务层 不是最好的 --- 我的面试经历

问题描述

我昨天去一家深圳软件公司面试,非常郁闷,请各位同行指点迷津;我向一位项目经理展示了一套借鉴websharp开源架构和smartpersistencelayer架构的接口,建立了一套架构,其中一个重要的思想:自定义实体(强类型)将会贯穿整个业务层,显示层;这位项目经理与副总告诉我,这种理念可能不是更好的,自定义实体满天飞;他们采用的架构是:无需为每个对应数据库数据表建立一对一的实体,而是一个通用的接口,入口一个参数(可能是指定数据库的一个表)自动生成sql语句,实现显示层数据在数据库的增删改。我是否可以认为他们采用的是弱类型的数据传递与处理;我的疑问是:自定义实体(强类型)将会贯穿整个业务层与弱类型随时埋伏在业务层的各个角落我的郁闷是:他们认为我的这种自定义实体(强类型)将会贯穿整个业务层是不好的,过时的请同行给个说法,谢谢大家

解决方案

解决方案二:
我个人认为确实不好,若后台数据库结构一变化,那还不得在你项目文件里到处Find-Replace啊,勿见笑!
解决方案三:
无需为每个对应数据库数据表建立一对一的实体,而是一个通用的接口,入口一个参数(可能是指定数据库的一个表)自动生成sql语句,实现显示层数据在数据库的增删改。以上是原始的(老掉牙的套路)~~楼主说的方法是强行套用的~~~可以说,这两种方法,半金八两~~
解决方案四:
@_@
解决方案五:
我还是认为强类型的自定义实体比较容易接受些毕竟数据库表结构经常在变化啊
解决方案六:
每个数据库对应一个实体类(我是这么做的,新手),看看高手的建议吧。
解决方案七:
re:我个人认为确实不好,若后台数据库结构一变化,那还不得在你项目文件里到处Find-Replace啊,勿见笑!我的进一步思考:自定义强类型实体:1.我们不可以回避的是关系型的数据库,不是面向对象的。数据表更改,一定会引起业务层的更改,这是肯定。关键是否便于修改,容易修改吗,修改的是否彻底。studion强大的调试工具只有针对傻瓜的自定义强类型才有非常确切的识别,Find-replace;弱类型通用实体接口:1.数据库结构变化了,业务层对通用实体引用的代吗不需要变化吗?更加的是,可能还找不到在何处?改了一处,不知道其它模块是否会出问题,这样的程序结构健壮吗?再次请教高手的建议!
解决方案八:
当客户说我招标的项目很大,你会嫌项目大吗?不会问题来了:你一定会准备好,关系型数据库数据表一定会很多;关注这么多数据表,是肯定了。现在我们有了基本对应数据表自定义强类型实体后,只要关注自定义强类型实体,这何来业务设计工作量进一步加大,我实在不明。
解决方案九:
当客户说我招标的项目很大,你会嫌项目大吗?不会问题来了:你一定会准备好,关系型数据库数据表一定会很多;关注这么多数据表,是肯定了。现在我们有了基本对应数据表自定义强类型实体后,只要关注自定义强类型实体,这何来业务设计工作量进一步加大,如此多的数据库表,怎样的DAO层可使业务层设计使工作量减少,又健壮。
解决方案十:
关注
解决方案十一:
老陈,原来你在这里。别灰心,继续努力。另外,我建议你,不要提自定义的实体类,我想,应该是自定义的对象,并且假设这些对象都是聪明的,智能的,它们会为自己的行为负责,并且提供了外界访问他们的最直观的方法。

时间: 2024-10-29 17:29:56

自定义实体(强类型)将会贯穿整个业务层 不是最好的 --- 我的面试经历的相关文章

掌握 ASP.NET 之路:自定义实体类简介

asp.net 摘要:有些情况下,非类型化的 DataSet 可能并非数据操作的最佳解决方案.本指南的目的就是探讨 DataSet 的一种替代解决方案,即:自定义实体与集合.(本文包含一些指向英文站点的链接.) 本页内容引言 DataSet 存在的问题 自定义实体类 对象关系映射 自定义集合 管理关系 高级内容 小结 引言ADODB.RecordSet 和常常被遗忘的 MoveNext 的时代已经过去,取而代之的是 Microsoft ADO.NET 强大而又灵活的功能.我们的新武器就是 Sys

Linq to Sql:N层应用中的查询(上) : 返回自定义实体

如果允许在UI层直接访问Linq to Sql的DataContext,可以省去很多问题,譬如在处理多表join的时 候,我们使用var来定义L2S查询,让IDE自动推断变量的具体类型 (IQueryable<匿名类型>),并 提供友好的智能提示:而且可以充分应用L2S的延迟加载特性,来进行动态查询.但如果我们希望将业务 逻辑放在一个独立的层中(譬如封装在远程的WCF应用中),又希望在逻辑层应用Linq to sql,则情况就 比较复杂了:由于我们只能使用var( IQueryable<

接口式实体定义之——自定义实体属性+实体多根继承

最新版本的NBear中除了本文中提到的两个功能之外,还包括如下内容: 1)支持EntityFactory.CreateObject和CreateObjectList现在支持基于DataSet或IDataReader中的字段名称而不仅仅是原来的基于字段顺序的数据填充了: 2)Gateway.Save和Insert方法现在支持自动返回新插入的纪录的自增长ID字段了(当然,前提是,这个实体对应的表确实使用自增长主键字段). 自定义实体属性 什么是CustomProperty呢? CustomPrope

过滤器怎么调用action-自定义的过滤器怎么调用ssh框架下的action业务层

问题描述 自定义的过滤器怎么调用ssh框架下的action业务层 我自定义的过滤器怎么调用javaWeb三大框架下的action业务层,我想讲我过滤器得到的用户ip等信息写入数据库 解决方案 首先,过滤器是请求到达Action之前被调用的,而且对所有的符合url-pattern的请求都会调用. 其次,没必要在过滤器中调用Action的业务,因为如果过滤操作执行完成后,最后action是会被执行的. 最后,你希望过滤得到用户的ip等信息,但是是否所有的请求都有ip信息呢?还是只有特定的action

(业务层)异步并行加载ChangeLog

继上一篇:  (业务层)异步并行加载技术分析和设计目前已经在google code上新建了一个project,也在逐步的完善和加强并行加载的功能,这里记录一下ChangeLog.   相关代码: https://github.com/agapple/asyncload , 有兴趣的同学可以一起参与,目前正在公司的应用中打算实施,逐步的在完善功能和解决一些兼容性的问题.   Change 1: (HandleMode模式修改) AsyncLoadExecutor(并行加载的执行容器),修改了Han

[原创].NET 业务框架开发实战之八 业务层Mapping的选择策略

原文:[原创].NET 业务框架开发实战之八 业务层Mapping的选择策略 .NET 业务框架开发实战之八 业务层Mapping的选择策略 前言:在上一篇文章中提到了mapping,感觉很像在重新实现NHibernate.其实文章的本意是想反映出Richard在思考的时候的一些选择:利用现有的,还是最后自己用别的方式实现.如果一上来就说什么什么好,那太武断了,也很片面,系列文章反复的在强调一点:技术有它的适用场景,没有完美的技术.很多的朋友说本系列在近似的开发一个ORM,其实不是:ORM就是把

.NET企业级架构解决方案:业务层

引言 Martin Fowler说过:"任何人都可以写出计算机才能理解的代码,只有写出人能理解的代码的程序员才是好程序员." 每一个复杂的软件都应该按层来组织.每一层代表系统的一个逻辑部件.尤其是,业务层的模块包括了所有使得系统运行的时候和其它层交互所需要的功能算法和计算,其他层包括数据访问层DAL和表现层. 业务层是任何分层系统的神经中心,包含了大部分的核心逻辑.因为这个原因,它也经常被叫做:业务逻辑层BLL. 正文 1.业务逻辑层是什么 抽象的讲,业务逻辑层是系统的一部分,用来处理

如何理解持久层 业务层 表现层 模型层

问题描述 如何理解持久层业务层表现层模型层?还有service层DAO层等等 解决方案 解决方案二:dao层负责数据交互,内容简单.只是最终的数据处理而已.service层,进行各种逻辑处理.action,最好简单到只需要调用service的方法而已...解决方案三:Dao层负责与数据库交互,sql,hql放在Dao层,最好不要侵入Service层.Service层负责处理业务业务逻辑,Action层负责控制转发,涉及业务逻辑的代码不要侵入到Action层,个人理解解决方案四:DAO:数据交互层

codesmith生成的代码业务层和借口层无法正常对接,但是中文字段一点问题都没有

问题描述 下面是接口层代码:codesimit模板<%@CodeTemplateInherits="CodeTemplate"Language="C#"TargetLanguage="Text"Description="NetTiersmaintemplate."Debug="True"ResponseEncoding="UTF-8"%><%@AssemblyName=