首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和Java代码,回答问题 [说明] 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。
阅读以下说明和Java代码,回答问题 [说明] 任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。
admin
2012-02-20
65
问题
阅读以下说明和Java代码,回答问题
[说明]
任何一种程序都是为了解决问题而撰写的,解决问题时需要实现一些特定的运算法则。在策略(Strategy)模式下,可以更换实现算法的部分而不留痕迹,切换整个算法,简化改为采用其他方法来解决同样问题。
以下是一个“剪刀石头布”游戏。猜拳时的“策略”有2种方法:第一种是“猜赢后继续出同样的招式”(WinningStrategy),第二种是“从上一次出的招式种,以概率分配方式求出下一个招式的几率”(ProbStrategy)。程序中定义了Hand类表示猜拳时的“手势”,类内部以0(石头)、1(剪刀)、2(布)来表示。Hand类的实例只会产生3个。
以下是Java语言实现,省略了不相关属性及方法,方法实现体亦有所省略,能够正确编译通过。
[Java代码]
//Hand.java文件
public class Hand{
public static final int HANDVALUE_GUU = 0; //石头
public static final int HANDVALUE_CHO = 1; //剪刀
public static final int HANDVALUE_PAA = 2; //布
public static final Hand[] hand = {
new Hand(HANDVALUE_GUU),
new Hand(HANDVALUE_CHO),
new Hand(HANDVALUE_PAA),
};
private int handvalue;
(1) Hand(int handvalue){
this.handvalue = handvalue;
}
public (2) Hand getHand(int handvalue)(//从值取得对象实例
return hand[handvalue];
}
}
//Strategy.java文件
public interface Strategy{
public (3) Hand nextHand();
}
//ProbStrategy.java文件
import java.util.Random;
public class ProbStrategy implements Strategy{
public Hand nextHand(){
int handvalue = 0;
/*省略具体实现*/
return Hand.getHand(handvalue);
}
}
//WinningStrategy.java文件
import java.util.Random;
public class WinningStrategy implements Strategy {
/*省略了不相关属性*/
public Hand nextHand(){
if(!won){
prevHand = Hand.getHand(random.nextInt(3));
}
return prevHand;
}
}
//Player.java文件
public class Player {
private String name;
private Strategy strategy;
public Player(String name, (4) strategy){
this.name = name;
this.strategy = strategy;
}
public Hand nextHand(){//向战略请示手势
return (5) ;
}
}
选项
答案
private static abstract Strategy strategy.nextHand()
解析
转载请注明原文地址:https://kaotiyun.com/show/jlDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则________________是一个小顶堆结构。堆结构用二叉树表示,则适宜的二叉树类型为________________。对于10个结点的小顶堆,其
某企业有生产部和销售部,生产部负责生产产品并送入仓库,销售部从仓库取出产品销售。假设仓库可存放n件产品。用PV操作实现他们之间的同步过程如下图所示。其中,信号量S是一个互斥信号量,初值为(1);S1是一个(2);S2是一
系统功能测试过程中,验证需求可以正确实现的测试用例称为(32)。
程序员甲与同事乙在乙家探讨甲近期编写的程序,甲表示对该程序极不满意,说要弃之重写,并将程序手稿扔到乙家垃圾筒。后来乙将甲这一程序稍加修改,并署乙名发表。以下说法正确的是(11)。
测试成本控制的目标是使测试开发成本、测试实施成本和测试维护成本最小化,以下理解正确的是______。A.测试准备成本属于测试实施成本B.可以通过加强软件测试的配置管理来降低测试维护成本C.测试设计成本控制的目标是尽可能地减少测试总执行时间和所需的测试
以下关于测试方法的叙述中,不正确的是_______。
浮点数能够表示的数的范围是由其__________的位数决定的。
若计算机存储数据采用的是双符号位(00表示正号、11表示负号),两个符号相同的数相加时,如果运算结果的两个符号位经()运算得1,则可断定这两个数相加的结果产生了溢出。
用边界值分析法,假定X为整数,10≤X≤100,那么X在测试中应该取(40)边界值。
下图是责任链设计模式的类图,该设计模式的目的是________。该图中,Handler和Handler之间是关联关系,Handler和ConcreteHandler之间是继承关系。
随机试题
以是否在合同中预先确定保险价值为准,可将保险合同分为
【案例】患者女性,40岁,外阴见一疣状肿物体积2.5cm×2cm×1.5cm,切面肿物基部与间质分解清楚,镜下见鳞状上皮呈乳头状生长,有角化不全,乳头无纤维血管束,底部钉突整齐向间质呈推移式浸润。关于疣状癌描述正确的是
某市A房地产开发公司(以下简称A公司)拟开发建设一大型商业用房,通过出让方式获得5公顷土地,支付土地出让金3750万元。A公司为了融资,将该土地使用权抵押给B建行,获得2000万元贷款,并办理了抵押登记,当工程建设一段时间后(经评估该在建工程的价值为220
在审核原始凭证时,对于内容不完整、填写有错误或手续不完备的原始凭证,应该()。
李某经营一家小饭店,经营中有人举报该饭店使用地沟油,且服务态度恶劣,多次与客户发生矛盾冲突。公安局依法责令其停产、停业。但法律文书在送达时,李某却拒绝接收。面对此种情况。送达部门应采取何种措施?()
小芳与小莲是一对好朋友,大纲与大勇也是,但这四人彼此之间却并不大熟悉。在一次机关联谊会上,小芳、小莲与大纲、大勇相遇。小芳能叫出大纲的名字,但大纲却叫不出小芳的名字。凡能叫出大纲名字的人都能叫出大纲朋友的名字,凡叫不出小芳名字的人都叫不出小芳朋友的名字。
软件维护工作越来越受到重视,因为它的花费常常要占软件生存周期全部花费的(28)%。其工作内容为(29)。为了减少维护工作的困难,可以考虑采取的措施是(30)。而软件的可维护性包含(31)。所谓维护管理主要指的是(32)等。
BSP研究结果提出具体的建议包括四个方面,有关保证实施工作能顺利完成的测控系统属于哪个方面的建议?
考生文件夹下存在一个数据库文件“samp2.accdb”,里面已经设计好一个表对象“tStud"和一个查询对象“qStud4”。试按以下要求完成设计:创建一个查询,计算并输出学生的最大年龄和最小年龄信息,标题显示为“MaxY”和“MinY”,所建查询命
Agoodtranslatorisbydefinitionbilingual.Theoppositeisnot【C1】______true,however.Abornandbredbilingualwillstill
最新回复
(
0
)