面向对象分析与设计简答题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、什么面向对象?

面向对象不仅是以些具体的软件开发技术与策略,而且以一套关于如何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。

2、软件开发方法学的基本方法有哪些?

1)软件工程和瀑布方法学2)新方法学:螺旋式、迭代式、递增式、合并式3)面向对象方法学:UML、RUP、XP

3、为什么需要OOA、OOD。

OOA就是运用面向对象的方法进行需求分析,OOA加强了对问题域和系统责任的理解,有利于人员之间的交流,对需求变化的适应性较强,很好的支持软件复用。

OOD就是运用面向对象的方法进行系统设计,OOD.符合人们习惯的思维方法,便于分解大型的复杂多变的问题;易于软件的维护和功能的增减;可重用性好;与可视化技术相结合,改善了工作界面。

4、从概念层次、规格层次、实现层次三个角度如何理解对象的概念?

从概念层次来看,一个对象就是一系列的责任;

从规格层次来看,一个对象是一系列可以被其他对象或该对象自己调用的方法;从实现层次来看,一个对象是一些代码和数据。

5、如何绘制类图和对象图?简述其步骤。

类图绘制:1发现类,找到备选类,确定候选类2关联分析,确定关联关系,多重性分析3职责分析4限定与修改,导航性分析,约束,限定符;

对象图绘制:1发现类和对象2对其细化,分析,确定关系。

6、简述重定义方法与重载的区别。

重定义:1参数列表必须完全与被重写的方法相同2返回类型必须一直域被重写的方法的类型相同3访问修饰符的限制一定要大于被重写方法的访问修饰符4重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查性异常:重载:1必须有不同参数列表2可以有不同的返回类型,只要参数列表不同即可3可有不同访问修饰符4可抛出不同的异常。

7.简述抽象方法与虚方法的联系与区别

虚方法有一个实现部分可以为子类实现有共同的方法,并为派生提供了覆盖该方法的选,抽象方法只是强制派生覆盖方法;抽象方法只能在抽象类中声明,而虚方法不是;抽象方法不能声明方法实体,虚方法可以;包含抽象方法的类不能实例化,但虚方法可以。

8、简述使用继承的规则。

1)、不要过度使用;2)、子类应是超类的一个类型;3)、子类应是超类的扩展;

4)、尽量少从具体类继承,最好继承接或抽象类。

9、理解封装的含义?

封装是指将抽象得到的数据和行为或功能相结合形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合形成类,其中的数据和函数都是累的成员。

10、常用的设计模式有那些?

单例模式,适配器模式,工厂模式,抽象工厂模式,装饰模式,观察者模式,外观模式。

11、简述设计模式的原则。

“开-闭”原则(OCP),软件对象应该对扩展开放,对修改关闭;

里氏代换原则(LSP),基类出现的地方,子类一定可以出现;

依赖倒转原则(DIP),要依赖于抽象,不要依赖于实现;

合成/聚合复用原则(CARP),尽量使用合成/聚合,而不是用继承达到复用;单一单一职责原则(SRP),就一个类而言,应该只有一个引起它变化的原因;

迪米特原则(LOD),一个软件实体与尽可能少的实体相互作用;

接口隔离原则(ISP),为客户端提供尽可能小的单独的接口

12、什么是多态性?

面向对象系统的多态性是指统一操作作用于不同的类的实例,将产生不同的执行结果,即是不同的类的对象收到相同的消息时得到不同的结果,它包括编译时多态性,运行时多态性。

13、发现对象有那些原则?

为了全面准确的发现系统所需要的对象,应该把握先多后少的原则,即首先要考虑各种启发自己发现对象的因素,尽可能找出对系统活动域可能有用的候选对象,宁可多条,不可遗漏;然后对所有的候选对象进行严格审查,筛选掉那些不必要的对象,或者对它们进行适当的调整和合并,使系统中对象的数量尽可能少。

14、研究问题域有那些工作要点?

阅读相关相关文档,与用户交流,进行实地调查,记录所得认识,整理相关资料,认真听取问题域专家的见解,借鉴他人经验。

15、如何发现系统中对象的属性和方法?

发现属性的策略:1按一般常识,该对象应该有哪些属性,2在问题域中,该对象应该有哪些属性3根据系统责任的要求,该对象应该有哪些属性4建立这个对象是为了保存和管理哪些属性5对象为了在服务中实现其功能,需要增设哪些属性6对象需要有哪些区别的状态,是否增设一个属性来管理这些状态,7用什么属性来表示整体部分结构和实力相连;

发现方法的策略:1考了系统责任2考虑问题域3分析对象状态,每一种状态下对象发生什么行为,状态的迁跃是由什么操作引起的4追踪服务的执行路线,从顺序图入手。

public Product factory(){

return new ConcreteProduct();

}

}

public interface Product{

public abstract ConcreteProduct();

}

public class ConcreteProduct implements Product{

public ConcreteProduct(){ }

} //简单工厂模式框架代码extends 继承

p ublic class EagerSingleton{

Private static EagerSingleton m_instance=new EagerSingleton(); Private EagerSingleton() {}

public static EagerSingleton(){

ruturn m_instance;

}

}//饿汉单例

相关文档
最新文档