2021下半年软件设计师下午真题及答案解析(六)

软件设计师 责任编辑:胡媛 2021-11-08

添加老师微信

备考咨询

加我微信

摘要:希赛小编在考后为大家整理了2021下半年软件设计师下午真题及答案解析(六),希望对考生估分会有帮助。

试题六(共15分)

阅读下列说明和Java代码,将应填入(n)处的字句写在题纸的对应栏内。

【说明】

享元(flyweight)模式主要用于减少创建对象的数量,以低内存占用,提高性能。现要开发一个网络围棋程序允许多个玩家联机下棋。由于只有一台服务器,为节内存空间,采用享元模式实现该程序,得到如图6-1所的类图。

【Java代码】

import java.util.*:

enum PieceColor {BLACK,WHITE}//棋子颜色

class PiecePos{//棋子位置

private intx;

private int y:

pubic PiecePos(int a,int b){x=a;y=b;}

public int getX0{retun x;}

public int getYO{return y;}

}

abstract class Piece{//棋子定义

protected PieceColor m_color;//颜色

protected Piecemopos m_pos;//位置

public Piece(PieceColor,color PiecePos

pos){m color=color;

{:sod=sod u

(1);

}

class BlackPiece extends Piece{

public BlackPiece(PieceColor

color,PiecePos pos){super(color,pos);}

public void drawO{

System out println("draw a black

piece");}

}

class WhitePiece extends Piece{

public WhitePiece(PieceColor

color,PiecePos pos){super(c

olor,pos):}

public void draw0{

System.out.println("draw a white

piece");

}

{

class PieceBoard{

//棋盘上已有的棋子

private static final

ArrayList<(2)>m_arrayPiece=new Arra

yList

private String m_blackName;//黑方名称

private String m_whiteName;//白方名称

public PieceBoard(String black,String

white){

m_blackName=black;m_whiteName=white;

}

//一步棋,在棋盘上放一颗棋子

public void SetePiece(PieceColor

color,PiecePos pos){

(3)piece=null;

if(color==PieceColor.BLACK)(//放黑子

piece=new BlackPiece(color,pos);//获取一颗黑子

System.out.println(m_blackName+"在位置("+pos.getX0)

+","+pos.getYO+")");

(4):

{

else{//放白子

piece=new WhitePiece(color,pos);//获取一颗白子

System.out.println(m whiteName+"在位置("+pos.getX0)+

","+pos.getYO+")");

(5):

}

m_arrayPiece.add(piece);

}

}

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取