千里冰封
JAVA 浓香四溢
posts - 151,comments - 2801,trackbacks - 0
下面我们再来看看ClientModel类,这个类负责保存游戏中的一些数据,这些数据可能需要Control类去更改然后需要由View类去呈现的,说白了,它就是一个包含有很多setter/getter的类.它的代码如下:

/*
 * ClientModel.java
 *
 * Created on 2007年10月2日, 下午2:02
 * 此类封装了一些公共的数据,为视图类提供模型
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 
*/

package com.hadeslee.apple.client;

/**
 *
 * 
@author lbf
 
*/

import com.hadeslee.apple.common.Bet;
import com.hadeslee.apple.common.INFO;
import java.awt.Image;
import java.util.Vector;
import static com.hadeslee.apple.common.Constants.*;
public class ClientModel {
    
private Image bg;//表示背景图片的对象
    private Image table;//表示下注桌面的对象
    
//private Image runA,runB;//表示跑动的图像,A表示正在跑的,B表示跑停了的,仅当火车的时候B才有用,其余为null
    
// private PP[] p;//表示当前的位置枚举表现形式,当长度为一时,则为普通情况,其余为特殊情况
    private Vector<PP> v;//表示当前的位置枚举表现形式,当长度为一时,则为普通情况,其余为特殊情况
    private Bet bet;//表示当前或者上一局下注的对象
    private INFO info;//表示当前的INFO对象,里面封装了要全速走的步数,大彩金,小彩金数
    private int allMoney,winMoney;//表示当前用户所有的钱和本局赢的钱
    private int id;//表示当前用户的ID号
    private Image[] number,winNumber;//表示数字的图像普通数组和赢了的数组
    private volatile boolean Running,Betting,hasRunB;//表示现在是否正在跑或者正在加时赌,是否有RunB
    private Image pkA,pkB;//表示两张正在PK的图
    private int ratioA,ratioB;//表示A和B国的陪率
    private RatioA ra;//表增添A或B的枚举
    private RatioB rb;
    
private Image pk;//表示PK的背景图
    private String infos;//表示跑马灯的文字信息
    /** Creates a new instance of ClientModel */
    
public ClientModel() {
        v
=new Vector<PP>();
        ra
=RatioA.A_20;
        rb
=RatioB.B_10;
    }
    
public Image getPKBG(){
        
return pk;
    }
    
public void setPKBG(Image bg){
        pk
=bg;
    }
    
public Image getBg() {
        
return bg;
    }
    
public int getRatioA(){
        
return ratioA;
    }
    
public int getRatioB(){
        
return ratioB;
    }
    
public void setRatioA(int a){
        ratioA
=a;
    }
    
public void setRatioB(int b){
        ratioB
=b;
    }
    
public void setBg(Image bg) {
        
this.bg = bg;
    }
    
    
public Image getTable() {
        
return table;
    }
    
    
public void setTable(Image table) {
        
this.table = table;
    }
    
   
/* public Image getRunA() {
        return runA;
    }
    
    
    public void setRunA(Image run) {
        this.runA = run;
    }
    
    public Image getRunB(){
        return runB;
    }
    public void setRunB(Image run){
        runB=run;
    }
    
*/
    
    
public Vector<PP> getP() {
        Vector
<PP> vec=new Vector<PP>();
        
for(PP p: v){
            vec.add(p);
        }
        
return vec;
    }
    
    
public void addP(PP p){
        v.add(p);
    }
    
public void setP(PP p){
        
if(v.size()>0){
            v.remove(v.size()
-1);
        }
        v.add(p);
    }
    
public void clearP(){
        v.removeAllElements();
    }
    
    
public Bet getBet() {
        
return bet;
    }
    
    
public void setBet(Bet bet) {
        
this.bet = bet;
    }
    
    
public INFO getInfo() {
        
return info;
    }
    
    
public void setInfo(INFO info) {
        
this.info = info;
    }
    
    
public int getAllMoney() {
        
return allMoney;
    }
    
    
public void setAllMoney(int allMoney) {
        
this.allMoney = allMoney;
    }
    
    
public int getWinMoney() {
        
return winMoney;
    }
    
    
public void setWinMoney(int winMoney) {
        
this.winMoney = winMoney;
    }
    
    
public int getId() {
        
return id;
    }
    
    
public void setId(int id) {
        
this.id = id;
    }
    
    
public Image[] getNumber() {
        
return number;
    }
    
    
public void setNumber(Image[] number) {
        
this.number = number;
    }
    
public Image getNumber(int i){
        
return number[i];
    }
    
public void setWinNumber(Image[] winNumber){
        
this.winNumber=winNumber;
    }
    
public Image getWinNumber(int i){
        
return winNumber[i];
    }
    
public Image[] getWinNumber(){
        
return winNumber;
    }
    
    
public boolean isRunning() {
        
return Running;
    }
    
    
public void setRunning(boolean Running) {
        
this.Running = Running;
    }
    
    
public boolean isBetting() {
        
return Betting;
    }
    
    
public void setBetting(boolean Betting) {
        
this.Betting = Betting;
    }
    
public void setHasRunB(boolean b){
        hasRunB
=b;
    }
    
public boolean getHasRunB(){
        
return hasRunB;
    }
    
    
public Image getPkA() {
        
return pkA;
    }
    
    
public void setPkA(Image pkA) {
        
this.pkA = pkA;
    }
    
    
public Image getPkB() {
        
return pkB;
    }
    
    
public void setPkB(Image pkB) {
        
this.pkB = pkB;
    }

    
public RatioA getRa() {
        
return ra;
    }

    
public void setRa(RatioA ra) {
        
this.ra = ra;
    }

    
public RatioB getRb() {
        
return rb;
    }

    
public void setRb(RatioB rb) {
        
this.rb = rb;
    }
    
//得到A国是否中奖
    public boolean isAWin(){
        
for(PP p:v){
            
if(p.country==COUNTRY_A)
                
return true;
        }
        
return false;
    }
    
public boolean isBWin(){
        
for(PP p:v){
            
if(p.country==COUNTRY_B)
                
return true;
        }
        
return false;
    }
}

多它的好处就是,一个改一个呈现,分工明确,并且它里面也可以包含一些简单的逻辑,这一点就是仁者见仁了:)





尽管千里冰封
依然拥有晴空

你我共同品味JAVA的浓香.
posted on 2007-11-12 09:31 千里冰封 阅读(1482) 评论(0)  编辑  收藏 所属分类: JAVASE

只有注册用户登录后才能发表评论。


网站导航: