工作感受杂谈

[size=large]2016年3月3日 简单记录下自己这几年的工作感受[/size]

[size=medium]最近刚刚换了一份工作,在找工作期间参加了很多公司的面试,由于我个人的表述能力较强,收到了多家公司的offer,但是面试中最突出的问题就是我的技术细节不够,以至于我在面试时要么如实回答并没有过某种技术的开发经验,要么依靠其他方式避开问题。
在参加一家公司的笔试的时候,遇到的大多都是基础题,其中最常见的莫过于 抽象类和接口 的区别,这个问题其实大多数的开发人员肯定都知道,我也仔细研究过,但是笔试的时候还是没有很好的回答出这个问题。于是回家之后我又一次的对这它们进行了学习,虽然掌握了基本原理,但是还是没有考虑出抽象类的应用场景。于是我便查看了以前所做过的所有企业级管理项目,最后发现,几乎清一色的使用接口而非抽象类,这大概就是我虽然反复学习抽象类的原理,但无法真正记住的原因。因为在企业级的应用里,对象一般直接对应数据库里的业务表,属性几乎与表的字典保持一致,而表的设计通常没有太多的关联性,所以没有需要抽象到父类里的属性或者方法,即使有公共部分也不会使用抽象类。在加上企业级的系统后台都是采用MVC,在Controller层中,又通常分化为Action层,Service层和DAO层,其中Action层主要处理由前台传递到后台的参数,并根据业务需求调用Service层,而真正处理业务逻辑的就是Service层,最后当有了处理结果需要进行数据库的CURD操作时,才调用DAO层。所以通过这种形式的开发来看,抽象类似乎没有存在的必要,因为Action、Service和DAO之间的调用始终是通过注入接口实现的,这样就导致了抽象类几乎不会被使用的问题。但是作为业务逻辑最复杂的Service层,可能存在的是大规模的面向过程式的编程,大函数,大对象可能随处可见。因此在这一层是有应用抽象类的可能的,也是最应该实现面向对象编程的部分。[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值