一、OOAD和UML_选择题
1. 请按软件开发的步骤对下列选项排序:( )
A 测试
B 分析
C 实现
D 需求
E 设计
参考答案:DBECA
2. 以下哪些图属于静态建模:( )
A 用例图
B 协作图
C 类图
D 对象图
参考答案:CDA
3. 以下关于UML中的相关概念解释,请填写:( )是站在用户的角度上去展示系统的功能?
A 用例图
B 类图
C 协作图
D 组件图
参考答案:A
4. 以下关于UML中的相关概念解释,请填写:( )是描述我们管理的问题域对象?
A 用例图
B 类图
C 协作图
D 组件图
参考答案:B
5. 以下那种UML图例表明了关联关系:( )
A --------------->
B ◇--------------
C ◆--------------
参考答案:A
6. 以下哪种UML图例表明了聚合关系:( )
A --------------->
B ◇--------------
C ◆--------------
参考答案:B
7.以下哪种UML图例表明了组合关系:( )
A --------------->
B ◇--------------
C ◆--------------
参考答案:C
8.以下哪些模式属于23种设计模式?( )
A:工厂
B:代理
C:适配器
D:组合
E:享元
参考答案:ABCDE
9. 在一个牛排咖啡摊所使用的系统里,有一系列的“风味牛排”。比如说菲利牛排、咖喱牛排、奶酪牛排等等。现在我们想用设计模式来描述牛排销售系统,该用下列哪种设计模式呢?()
A 单键模式
B 桥接模式
C 享元模式
D 观察者模式
参考答案:C
10.OOAD的设计需要遵循下列哪些原则:( )
A 开闭原则
B 里氏代换原则
C 最少覆盖原则
D 接口隔离原则
E 依赖倒转原则
F 组合、聚合复用原则
参考答案:ABCDEF
11. 哪一种模式限制了创建类的实例数量?( )
A 命令模式(Command)
B 工厂方法模式(Factory Method)
C 策略模式(Strategy)
D 单例模式(Singleton)
参考答案:D
12. 装饰模式(Decorator)常常出现在Java的哪一个包中?( )
A java.io
B java.awt
C java.lang
D java.util
参考答案:B
13. 以下代码所用到的是单例模式的( )加载方式?
代码:
public class TestSingletton {
public static void main(String[] args){
ClassA ca=ClassA.newInstance();
}
}
class ClassA{
private static ClassA instance=new ClassA();
public static ClassA newInstance(){
return instance;
}
private ClassA(){}
}
A:工厂模式
B:单例模式
C:饿汉式
D:代理模式
E:懒汉式
参考答案:C
二、1.OOAD和UML_简答题
1. 请回答:什么是OOAD?
参考答案:OOAD就是Object Orient Analysis & Design,即面向对象的分析和设计&面向对象分析与设计,是现代软件企业广为采用的一项有效技术。OOAD方法要求在设计中要映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型,并保持他们的结构、关系和行为为模式。
2. 一般开发软件过程的五大步骤是什么?
参考答案:1)需求,2)分析,3)设计,4)实现,5)测试。
3. 什么是OOP?
参考答案:OOP是Object_oriented Programming(面向对象编程)的缩写。这主要是为了区别于以前的面向过程的程序设计!指的是用对象的观点来组织与构建系统,它综合了功能抽象和数据抽象,这样可以减少数据之间的耦合性和代码的出错几率。使用面向对象编程技术可以使得软件开发者按照现实世界里人们思考问题的模式编写代码,可以让软件开发者更好地利用代码直接表达现实中存在的对象,将问题空间直接映射到解空间。
4. 什么是类?请对比类和对象实例之间的关系?
参考答案:类,即class 在面向对象的程序设计中,专门用“类”来表示用户定义的抽象数据类型(user_defined abstract type)。它将具有相同状态、操作和访问机制的多个对象进行了抽象。类具有继承、数据隐藏和多态三种主要特性。利用类的这三种特性可以更好地表示现实世界中事物。类是同一类对象实例的共性的抽象,对象是类的实例化。对象通常作为计算机模拟思维,表示真实世界的抽象,一个对象就像一个软件模块,可以为用户提供一系列的服务---可以改变对象的状态、测试、传递消息等。类定义了对象的实现细节或数据结构。类是静态的,对象是动态的,对象可以看作是运行中的类。类负责产生对象,可以将类当成生产对象的工厂(Object factory)。
5. Java程序怎么优化?
参考答案:提高JAVA的性能,一般考虑如下的四个主要方面:(1)程序设计的方法和模式 (2) JAVA布署的环境。 (3) JAVA应用程序的实现 。(4) 硬件和操作系统,为了提高JAVA程序的性能,需要遵循如下的六个步骤。 a) 明确对性能的具体要求 b) 了解当前程序的性能 c) 找到程序的性能瓶颈 d) 采取适当的措施来提高性能 e) 只进行某一方面的修改来提高性能 f) 返回到步骤c,继续作类似的工作,一直达到要求的性能为止。
6. JAVA中常用的设计模式?并说明工厂模式?
参考答案:(1)Java中的23种设计模式:
Factory(工厂模式),Builder(建造模式),Factory Method(工厂方法模式),
Prototype(原始模型模式),Singleton(单例模式),Facade(门面模式),
Adapter(适配器模式),Bridge(桥梁模式),Composite(合成模式),
Decorator(装饰模式),Flyweight(享元模式),Proxy(代理模式),
Command(命令模式),Interpreter(解释器模式),Visitor(访问者模式),
Iterator(迭代子模式),Mediator(调停者模式),Memento(备忘录模式),
Observer(观察者模式),State(状态模式),Strategy(策略模式),
Template Method(模板方法模式), Chain Of Responsibleity(责任链模式)
(2)工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。
7. 你在开发中都用到了那些设计模式?用在什么场合?
参考答案:主要用到了MVC的设计模式。用来开发JSP/Servlet的JAVA WEB应用或者J2EE的相关应用。
8. 编程题: 写一个单例模式(Singleton)
参考答案:一般Singleton模式通常有几种种形式:
第一种形式:
public class Singleton {
private Singleton(){}
private static Singleton instance = new Singleton();
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
if (instance==null)
instance=new Singleton();
return instance;
}
}