关于面试的时候所遇到的几个比较争议的问题

作者在面试中被质疑其基于iBATIS实现的MVC框架不符合面向对象原则,并讨论了数据库字段变化及移植等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天面试的时候两次都遇到同一个场景:面向对象以及MVC框架延伸。
本身是叫我实现一个MVC的应用,按照我自己的想法和思路,用基于iBATIS的思想实现了一个框架。但是这里问题就来了,面试官总是说:“1.你这个我没有看到面向对象在哪里。你的这个与其说是面向对象,还不如说是面向SQL语句。2.并且如果当我某一天数据库的字段改变了呢?岂不是你的SQL语句也要相应的发生改变?3.如果某一天我的数据库由当前的MSSQL转移到了Oracle了呢?你的这些SQL语句根本不可能再用的起来,我会花费更多的成本。”

当时争辩了很多,最后谁也没有说服谁。我这里列举我的一点看法,希望大家指点。

1. 针对SQL返回的对象所做的ORM怎么不是面向对象了?我只是没有像Hibernate那样针对数据库表做映射而已,难道要像这两位面试官他们那样采用Hibernate那样才叫面向对象?(他们都是采用的基于Hibernate的,感觉除了Hibernate之外的其他ORM都不是面向对象)
2. 数据库字段的改变,目前分析存在两种情况,1)字段名称改变,这种情况一般发生的很少,尤其是在项目已经开发到一定阶段了之后;2)字段类型改变,这种情况一般不会发生,在一开始的时候就已经定义好了这个字段的意义;3)字段长度的改变,这种不会影响到我的SQL映射的。所以我认为基于数据库字段的改变的考虑是需要,但在这里他并不是什么致命的问题。
3. 数据库移植这种事情会经常发生吗?难道一个项目在开始做了之后,会经常频繁的转换于多种数据库之间?今天是MSSQL,明天想起了又转向Oracle?另外,数据库移植这件事本身,也是属于一件很庞大的工作量,就算是采用Hibernate这种ORM,难道只在一天之内换了底层数据库然后就可以回去睡大觉?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值