当前位置:首页计算机类软件水平考试中级软件设计师->享元(flyweight)模式主要用于减少创建对象的数量,以

享元(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);

}

}

答案:
本题解析:

(1)public abstract void draw( )

(2)Piece

(3)Piece

(4)piece.draw( )

(5)piece.draw( )

更新时间:2022-10-14 19:57
纠错

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)P(S2)和V(S3)
  • B.P(S1)V(S2)和V(S3)
  • C.V(S1)V(S2)和V(S3)
  • D.P(S1)P(S2)和V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S4)和V(S4)V(S5)
  • B.V(S5)和P(S4)P(S5)
  • C.V(S3)和V(S4)V(S5)
  • D.P(S3)和P(S4)V(P5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S3)和V(S4)V(S5)
  • B.V(S3)和P(S4)P(S5)
  • C.P(S3)和P(S4)P(S5)
  • D.V(S3)和V(S4)V(S5)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S1)、P(S1)和V(S2)V(S3)
  • B.P(S1)、V (S1)和V(S2)V(S3)
  • C.V(S1)、V(S2)和P(S1)V(S3)
  • D.P(S1)、V(S2)和V(S1)V(S3)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.序列图
  • B.状态图
  • C.通信图
  • D.活动图
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.合并分叉
  • B.分支
  • C.合并汇合
  • D.流
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.产甲2套,乙3套
  • B.生产甲1套,乙4套
  • C.生产甲3套,乙4套
  • D.生产甲4套,乙2套
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.见图A
  • B.见图B
  • C.见图C
  • D.见图D
查看答案