中间件技术与应用试卷
- 格式:doc
- 大小:111.00 KB
- 文档页数:6
2016年度中间件技术与应用试卷
姓名:学号:
一、简答题:
1.现代应用系统的基本特征?(6分)
2.按照IDC的分类方法,中间件分为哪几类?(5分)
3.事务处理中间件模型包括3个组成部分,分别是什么?并说明各部分的作用。(6分)
4.消息中间件的工作原理是什么?(5分)
5.面向对象的设计模式按作用可分为哪三类?(6分)
6.可复用的面向对象设计的几个原则是什么?(4分)
7.三层Web应用程序模型组成?说明各层的作用。(6分)
8.请说出框架和模式的区别?(4分)
9.设计一个RMI中间件,由哪几部分组成,说明各部分实现的功能。可举例说明。(8
分)
10.请说出下面这张UML图中各类的关系:(5分)
11.根据以下类图,请说出是哪种设计模式,并说明模式组成的角色?(每题5分,共15
分)
图11题-1
图11题-2
图11题-3
二、程序分析题
1. 请说明下列代码实现所用的是什么模式?(3分),画出类图(5分),并写出输出结果。(2分)
public abstract class Bird{
public abstract int fly();
}
public abstract class Debird extends Bird{
protected Bird bird;
public Debird (){
}
public Debird (Bird bird){
this.bird=bird;
}
}
public class Sparrow extends Bird{
public final int DISTANCE=100;
public int fly(){
return DISTANCE;
}
}
public class SparrowDebird extends Debird{
public final int DISTANCE=50;
SparrowDecorator(Bird bird){
super(bird);
}
public int fly(){
int distance=0;
distance=bird.fly()+eleFly();
return distance;
}
private int eleFly(){
return DISTANCE;
}
}
public class Application{
public void needBird(Bird bird){
int flyDistance=bird.fly();
System.out.println("这只鸟能飞行"+flyDistance+"米");
}
public static void main(String args[]){
Application client=new Application();
Sparrow sparrow=new Sparrow();
SparrowDebird sparrowDe1=new SparrowDebird(sparrow);
SparrowDebird sparrowDe2=new SparrowDebird (sparrowDe1);
client.needBird(sparrowDe1);
client.needBird(sparrowDe2);
}
}
2.请说明下列代码实现所用的是什么模式?(3分),画出类图(5分),并写出输出结果。(2分)
public abstract class Drug{
String constitute;
String name;
public String getName(){
return name;
}
public String getConstitute(){
return constitute;
}
}
public interface DrugCreator{
public abstract Drug getDrug();
}
public class AmorDrugCreator implements DrugCreator{
public Drug getDrug(){
int [] a={200,5};
Drug drug=new Amorolfine("甲硝唑胶囊",a);
return drug;
}
}
import java.util.*;
public class Application{
public static void main(String args[]){
DrugCreator creator=new AmorDrugCreator();
drug=creator.getDrug();
System.out.println(drug.getName()+"的成份:");
System.out.println(drug.getConstitute());
}
}