WEB开发网
开发学院软件开发Java hand first 设计模式 -状态模式 阅读

hand first 设计模式 -状态模式

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 超市 Java代码publicclassShop{privateBuyStatselectStat;privateBuyStatpayStat;privateBuyStatpackingStat;privateBuyStatinShopStat;privateBuyStatwinnerStat;

超市

Java代码   

public class Shop { 
 
 private BuyStat selectStat; 
 
 private BuyStat payStat; 
 
 private BuyStat packingStat; 
 
 private BuyStat inShopStat; 
 
 private BuyStat winnerStat; 
 
 private boolean hasMer; 
 
 private BuyStat stat = null; 
 
 public Shop() { 
 selectStat = new SelectStat(this); 
 payStat = new PayStat(this); 
 packingStat = new PackingStat(this); 
 inShopStat = new InShopStat(this); 
 winnerStat = new WinnerStat(this); 
 stat = inShopStat; 
 } 
 
 public void inShop() { 
 stat.inShop(); 
 } 
 
 public void select() { 
 stat.select(); 
 } 
 
 public void pay() { 
 stat.pay(); 
 } 
 
 public void packing() { 
 stat.packing(); 
 } 
 
 public void winner(){ 
 stat.winner(); 
 } 
 
 public boolean isHasMer() { 
 return hasMer; 
 } 
 
 public void setHasMer(boolean hasMer) { 
 this.hasMer = hasMer; 
 } 
 
 public BuyStat getStat() { 
 return stat; 
 } 
 
 public void setStat(BuyStat stat) { 
 this.stat = stat; 
 } 
 
 public BuyStat getSelectStat() { 
 return selectStat; 
 } 
 
 public BuyStat getPayStat() { 
 return payStat; 
 } 
 
 public BuyStat getPackingStat() { 
 return packingStat; 
 } 
 
 public BuyStat getInShopStat() { 
 return inShopStat; 
 } 
 
 public BuyStat getWinnerStat() { 
 return winnerStat; 
 } 
}

测试

Java代码   

public class ShopTest { 
 
 /** 
 * @param args 
 */ 
 public static void main(String[] args) { 
 // TODO Auto-generated method stub 
  
 Shop shop = new Shop(); 
 shop.inShop(); 
 shop.select(); 
  
  
 shop.pay(); 
  
 shop.packing(); 
  
 shop.winner(); 
 
 } 
 
}

使用状态值主要作用是便于以的新增和修改状态,其他的状态不会受到影响.改变了以前将状态设置为静态变量.扩展时修改很复杂现象.更加容易扩展.

以上相关例子还有一些缺陷,真是作用是理解这个模式的设计原理,能类代理以前的静态变量状态值,以后更容易维护.

上一页  1 2 3 4 

Tags:hand first 设计模式

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接