閱讀下列說(shuō)明和Java代碼,將應(yīng)填入(n)處的字句寫在題紙的對(duì)應(yīng)欄內(nèi)。
【說(shuō)明】
享元(flyweight)模式主要用于減少創(chuàng)建對(duì)象的數(shù)量,以低內(nèi)存占用,提高性能?,F(xiàn)要開(kāi)發(fā)一個(gè)網(wǎng)絡(luò)圍棋程序允許多個(gè)玩家聯(lián)機(jī)下棋。由于只有一臺(tái)服務(wù)器,為節(jié)內(nèi)存空間,采用享元模式實(shí)現(xiàn)該程序,得到如圖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);
}
}
【問(wèn)題1】(3分)
根據(jù)說(shuō)明中的描述,給出圖3-1中U1~U3所對(duì)應(yīng)的用例名。
【問(wèn)題2】(4分)
圖3-1中用例U1~U3分別與哪個(gè)(哪些)用例之間有關(guān)系,是何種關(guān)系?
【問(wèn)題3】(8分)
根據(jù)說(shuō)明中的描述,給出圖3-2中C1~C8所對(duì)應(yīng)的類名。
【問(wèn)題1】 (8分)
根據(jù)說(shuō)明扣C代碼,填充C代碼中的空(1)~(4)的。
【問(wèn)題2】 (4分)
根據(jù)說(shuō)明和C代碼,算法采用了(5)設(shè)計(jì)策略,時(shí)間復(fù)雜度為(6)(用O符號(hào)表示,兩個(gè)字符串的長(zhǎng)度分別用m和n表示)。
【問(wèn)題3】 (3分)
已知兩個(gè)字符串A="CTGA"和B="ACGCTA",根據(jù)說(shuō)明和C代碼,可得出這兩個(gè)字符串的編輯距離為(7)。