Program Design
fantian830211
yaogao@gmail.com
展开
-
Object-oriented Technology Fundamentals
Object-oriented Technology Fundamentals 2006-8-6 fantian830211@163.com PrefaceHaving been learning English for a long time, and longing to be an employee of an international company原创 2006-08-06 12:55:00 · 1336 阅读 · 0 评论 -
软件开发者面试百问-----在N层架构中都有哪些层?它们各自的职责是什么?
分而治之的思想在开发中用的很多,用面向对象的思想就是提高内聚,降低耦合。于是有了N层架构。所谓N层架构,一般都最少包含3层:表示层,业务逻辑层和数据访问层。表示层负责与用户进行交互,简单点讲就是用户界面业务逻辑层负责实现业务逻辑,完成数据计算数据访问层负责访问数据,比如数据库或者文件或者网络上的数据随着项目规模的扩大,复杂度的提高,有的层比如业务逻辑层本身的复杂度也会变得很高,这样系统的复原创 2009-10-30 11:52:00 · 1595 阅读 · 0 评论 -
软件开发者面试百问-----是否了解什么是无状态的业务层?长事务如何与之相适应?
先解释一下两个概念:1.无状态的业务层(stateless business layer) 简单点讲就是业务对象是没有状态的,不会共享自己的状态,比如上一次调用的时候的状态。 常见的例子:EJB的Stateless session bean, Spring的bean的singleton也是这样的。 无状态的业务对象可以减少对共享资源使用的冲突,从而提高效率。而且可以降低更容器原创 2009-11-04 15:02:00 · 2424 阅读 · 0 评论 -
软件开发者面试百问-----什么是低耦合和高聚合?封装原则又是什么意思?
什么是低耦合和高聚合?封装原则又是什么意思?内聚(本题的聚合):内聚是指一个模块内部各个部分之间的关联程度耦合:耦合指各个模块之前的关联程度封装原则:隐藏对象的属性和实现细节,仅对外公开借口,并且控制访问级别在面向对象方法中,用类来实现上面的要求。用类实现封装,用封装来实现高内聚,低耦合。原创 2009-06-06 21:07:00 · 3500 阅读 · 0 评论 -
软件开发者面试百问-----描述一下实现一段代码的过程,从需求到最终交付
我想这个就是让我们描述一下开发的流程。以瀑布模型为例,应该有下面几个阶段:1.需求分析 a.确定业务需求 b.确定系统需求 c.需求分析2.设计 a.功能设计(Function Design) b.技术设计(Technical Design)3.编码4.测试 a.单元测试 b.集成测试5.交付 a.UAT b.Deploy6.维护原创 2009-05-17 17:21:00 · 1435 阅读 · 0 评论 -
软件开发者面试百问-----你知道设计模式吗?你用过哪些设计模式?在什么场合下用的?
所谓设计模式,就是在特定的情况下,应该使用的经过验证的有效的办法。比如,我们系统里有一个对象只允许产生一次,这个时候我们应该用Singleton。正如上面所提到的,需要根据场合来使用相应的设计模式。我用过的比较多的模式都是关于线程的。当两个线程操作一个队列,一个往里添加,一个往外取值,这个时候很显然,应该用生产者消费者模式。具体可以查看下面的URL:http://blog.原创 2009-07-24 09:57:00 · 5202 阅读 · 0 评论 -
软件开发者面试百问-----你怎么保证代码执行速度快,而又不出问题?
你怎么保证代码执行速度快,而又不出问题?正确和快都是相对的,在保证我们的代码正确运行的情况下,保证效率的情况下的尽量考虑到更多的异常情况。并且全面考虑测试用例来测试。原创 2009-04-30 22:48:00 · 1138 阅读 · 0 评论 -
软件开发者面试百问-----什么时候用多态,什么时候用委派?
所谓多态,就是对象能够对不同的消息作出正确的响应。说的简单点就是我们方法调用的时候,对象会自动判断应该调用哪个方法。多态的实现方法有继承,overload和overwrite这些类型。所以基本上用到面向对象语言都会用到多态。 在Java中没有委托的概念。原创 2009-04-30 22:54:00 · 2625 阅读 · 0 评论 -
软件开发者面试百问-----除了IDE以外,你还喜欢哪些必不可少的工具?
Apart from the IDE, which other favorite tools do you use that you think are essential to you? 1.JavaDoc2.Network原创 2009-04-25 16:04:00 · 982 阅读 · 0 评论 -
软件开发者面试百问-----什么时候使用抽象类,什么时候使用接口?
我觉得接口应该优于抽象类,主要的原因是:1.可以实现多个接口,但是只能继承一个抽象类2.现有的类很容易被更新,需要做的只是实现新的接口,而且是安全的3.我感觉继承不是很好,因为继承使得子类依赖于父类,父类的变化会影响到子类 我感觉我们应该用下面的方式来使用接口和抽象类:优先使用接口,如果我们确实是需要提供一些默认的实现来增强我们的接口,那么我们可以用抽象类来实现接口,在这个抽象类里实现我们原创 2009-04-19 15:13:00 · 1810 阅读 · 0 评论 -
软件开发者面试百问-----怎么样让我们的代码可以处理各种错误事件?
怎么样让我们的代码可以处理各种错误事件?处理各种错误事件就是在出现错误的情况下作出相应的响应,我觉得事件有下面两种方式:1.自己可以处理的事件2.自己处理不了的事件 那么针对自己可以处理的事件,或者可以预先预计到的事件,应该自己处理,比如下面一些情况:a.在函数中判断一下参数是否是null,会被作为除数的参数是不是0 或者根据业务规则判断一下是否超过了边界值等等。b.对于程序抛出的异常,原创 2009-04-12 21:41:00 · 1611 阅读 · 0 评论 -
软件开发者面试百问-----看别人代码的时候,你最关心什么地方?
我最关心的是这些代码是不是可以正确运行,如果不能正确运行,如何如何漂亮,应用了什么最新技术,什么高深的思想,那都是空话。原创 2009-04-18 09:54:00 · 2170 阅读 · 0 评论 -
软件开发者面试百问-----面向对象设计和面向组件设计有哪些不同之处?
面向对象设计和面向组件设计有哪些不同之处?面向对象和面向组件设计之间的不同之处在于着眼的粒度不一样,面向对象关注类与类之间的关系,面向组件着眼于可以独立工作的可替换的代码模块,并且使用的时候无需直销其内部的工作原理。这两种方法论的根本区别在于对目标应用的关注点上面:1。面向对象的世界里,虽然可以拆分成很多类,但是这些类一旦被编译,他们其实仍然是一个整体。2。面向组件的应用包原创 2009-11-16 15:46:00 · 1410 阅读 · 0 评论