hand first 设计模式 -状态模式
2009-09-17 00:00:00 来源:WEB开发网超市
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();
}
}
使用状态值主要作用是便于以的新增和修改状态,其他的状态不会受到影响.改变了以前将状态设置为静态变量.扩展时修改很复杂现象.更加容易扩展.
以上相关例子还有一些缺陷,真是作用是理解这个模式的设计原理,能类代理以前的静态变量状态值,以后更容易维护.
- ››设计模式:工厂方法模式
- ››设计模式一 - Simple Factory, Factory Method, A...
- ››设计模式重构应用---Decorator模式
- ››设计模式重构应用---Template Method模式
- ››hand first 设计模式 - 装饰者模式
- ››hand first 设计模式 - 工厂模式
- ››hand first 设计模式 - 抽象工厂模式
- ››hand first 设计模式 - 单例模式
- ››hand first 设计模式 - 命令模式
- ››hand first 设计模式 -适配器模式
- ››hand first 设计模式 -外观模式
- ››hand first 设计模式 -模板方法模式
更多精彩
赞助商链接