昨天去CA应聘一个职位,过程中有几个问题回答的不是很好.
第一个是关于设计模式的,一时间竟然忘记了策略模式……,唉,真是平时不读书,用时懵倒人啊。话说这是策略模式是最基本的接口使用方式了,无非是将功能的实现方法提取到接口中。它的作用就是当我改变功能的具体实现方式时,无需改变原有代码,而只需增加新的实现类即可。例如飞机类,都有一个飞行方法fly,最初的设计也许是使用螺旋桨飞行,后面也许会改变策略,变成使用喷气式发动机。于是就将flyable接口提取出来,即可。
还有一个是关于事务的,考官问的问题比较奇怪,如果一个事务特别冗长,比如执行时间超过1个小时,那该怎么办?我的回答是应该考虑拆分或精简这个事务,然后考官接着问,如果这个事务里面的操作都是必要的,不可分的,那怎么办呢? 我就又晕了,心说既然都是必要的了,那还能怎么办? 查看源码?找出性能瓶颈? 貌似不是针对这个问题的答案啊!只好说,不知道……