首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图6-1所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增
阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。 [说明] 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图6-1所示。 现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增
admin
2013-01-05
38
问题
阅读下列说明和Java代码,将应填入 (n) 处的字句写在对应栏内。
[说明]
某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图6-1所示。
现在采用组合(Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如图6-2所示的类图。其中MenuComponent为抽象类,定义了添加(add)新菜单和打印饭店所有菜单信息(print)的方法接口。类Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图6-1中的甜点菜单。类MenuItem表示菜单中的菜式。
[Java代码]
import Java.util.*;
(1) MenuComponent{
protected String name;
(2) ;//添加新菜单
public abstract void print(); //打印菜单信息
public String getName(){return name;}
}
class MenuItem extends MenuComponent{
private double price;
public Menultem(String name, double price){
this.name=name; this.price=price;
}
public double getPrice() {return price;}
public void add(MenuComponent menuComponent){return;}//添加新菜单
public void print(){
System.out.print(""+getName());
System.out.println(","+getPrice());
}
}
class Menu extends MenuComponent {
private List<MenuComponent>menuComponents=new ArrayList<MenuComponent>();
public Menu(String name){this.name=name;}
public void add(MenuComponent menuComponent){ //添加新菜单
menuComponents. (3) ;
}
publiC void print(){
System.out.print(“\n"+getName());
System.out.println(","+"-------------------------");
Iterator iterator=menuComponents.iterator();
while(iterator.hasNext()){
MenuComponent menuC0mponent=(MenuComponent)iterator.next();
(4) ;
}
}
Class MenuTestDrive{
public static void main(String args[]){
MenuComponent allMenus=new Menu("ALL MENUS");
MenuComponent dinerMenu=new Menu("DINER MENU");
…//创建更多的Menu对象,此处代码省略
allMenus. add(dinerMenu); //将dinerMenu添加到餐厅菜单中
…//为餐厅增加更多的菜单,此处代码省略
(5) ; //打印饭店所有菜单的信息
}
}
(5)
选项
答案
allMenus.print()
解析
Composite模式将对象组合成树形结构以表示“整体一部分”的层次结构,其中的组合对象使得你可以组合基元对象以及其他的组合对象,从而形成任意复杂的结构。Composite模式使得用户对单个对象和组合对象的使用具有一致性。
Composite模式的结构下图所示。
其中:
·类Component为组合中的对象声明接口,在适当的情况下,实现所有类共有接口的缺省行为,声明一个接口用于访问和管理Component的子部件;
·类Leaf在组合中表示叶节点对象,叶节点没有子节点;并在组合中定义图元对象的行为;
·类Composite定义有子部件的那些部件的行为,存储子部件,并在Component接口中实现与子部件有关的操作;
·类Client通过Component接口操纵组合部件的对象。
下列情况可以使用Composite模式:
(1)表示对象的整体-部分层次结构;
(2)希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
试题六将组合模式应用到饭店菜单的构造中。图6-2中的类MenuComponent对应上图中的Component,MenuItem对应Leaf,Menu对应Composite。在实现时,通常都会把Component定义为抽象类。
在Java中,用abstract关键字限定的类即为抽象类,所以(1)处应填入abstract class。(2)处根据注释,这里应该定义功能为“添加新菜单”的成员函数。在子类MenuItem和Menu中可以看到,都有add成员函数,说明予类中重置了父类中的成员函数。所以(2)处应填入public abstract void add(MenuComponent menucomponent)。
由图6-2可以看出,Menu中包含了MenuComponent的对象集合。程序中用Java中的list来实现这个聚集关系,这样就可以利用list中提供的各种方法了。list中用于添加元素的方法是add,所以(3)处应填入add(menuComponent)。
(4)处出现在方法print中,其功能是打印出所有菜单的信息。这里使用了list中的迭代器类iterator,遍历每个子菜单,并调用子菜单中定义的print方法打印该子菜单的信息。(4)处应填入menuComponent.print()。
为了能够在main中打印出所有的菜单信息,必须使用表示菜单结构中最项层菜单的对象来调用print,因此(5)处应填入allMenus.print()。
转载请注明原文地址:https://kaotiyun.com/show/4eDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某汽车维修公司有部门、员工和顾客等实体,各实体对应的关系模式如下:部门(部门代码,部门名称,电话)员工(员工代码,姓名,部门代码)顾客(顾客号,姓名,年龄,性别)维修(顾客号,故障情况,维修日期,员工代码)假设每个部门允许有多部电话,则电话属性为
若计算机中地址总线的宽度为24位,则最多允许直接访问主存储器(6)________________的物理空间(以字节为单位编址)。
下列协议中与Email应用无关的是()。
关于集成测试的描述中,正确的是(41)。①集成测试也叫做组装测试或联合测试,通常是在单元测试的基础上,将所有模块按照概要设计说明书和详细设计说明书的要求进行组装和测试的过程。②自顶向下的增殖方式是集成测试的一种组装方式,它能较早地验证主要的控制和判断点
针对下列程序段,对于(A,B,C)的取值,以下(56)测试用例组合能够满足语句覆盖的要求。IF((A+10)=2OR(B-20)<3)THENC=0IF((A+30)=10AND(C-30)<0)THENB=30
在软件项目管理中可以使用各种图形工具来辅助决策,下面对甘特(Gantt)图的描述中,不正确的是(15)。
静态图像压缩标准JPEG2000中使用的是(60)算法。
以下关于系统测试的叙述,不正确的是()。
关于确认测试,描述正确的是(39)。①确认测试一般包括有效性测试与软件配置复查,采用黑盒测试为主,白盒测试为辅的测试方法进行测试。②确认测试配置项复查时应当严格检查用户手册和操作手册中规定的使用步骤的完整性和正确性。③确认测试需要检测与证实软件是否满
确定测试基线属于()活动。
随机试题
下列存储器中,存取速度最快的是()。
A、溃疡B、疮疡C、肿疡D、脓疡E、痈疽一切体表未溃破的肿块称
下列哪项不属于远部选穴
通过蛋白激酶A通路发挥作用的激素是
下面不属于无效合同种类的是()。
甲公司为乙公司的母公司。20×3年12月25日,甲公司与乙公司签订设备销售合同,约定将生产的一台A设备销售给乙公司,售价(不含增值税)为500万元。20×3年12月31日,甲公司按合同约定将A设备交付乙公司,并收:取价款。A设备的成本为400万元。乙公司将
只要有客户,就会有评价,每一个客户的评价总结起来,就成为了一个品牌或者一个企业的口碑。消费者的这些评价,它们有针对生产厂家的,有针对经销商的,当然也有针对个别工作人员的。怎样的品牌和企业才能够得到良好的口碑?方方面面,每一个环节都需要___________
以下列举的活动,属于春秋时期公布成文法活动的有()
在考生文件夹下有一个数据库文件“samp2.accdb”,其中存在已经设计好的两个表对象“tTeacher1”和“tTeacher2”以及一个宏对象“mTest”。请按以下要求完成设计。创建一个窗体,命名为“fTest”。将窗体“标题”属性设为“测试窗
Professionalwomenwhoputcareersonholdforfamilyorotherreasonsearn18percentlessoncetheyreturntotheworkforce,a
最新回复
(
0
)