首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

《Head First设计形式》阅读笔记.第八章

2012-11-14 
《Head First设计模式》阅读笔记.第八章1.模板方法(Template Method)模式部分----设计谜题解答----// 导游pu

《Head First设计模式》阅读笔记.第八章
1.模板方法(Template Method)模式部分

----设计谜题解答----

// 导游public abstract class Guide {       public final void leadTour() {        this.buyTickets();        if (needRest()) {// 钩子            this.bookingHotel();        }        this.conveneVisitors();        this.goToScenicSpot();        this.visit();        if (needRest()) {// 钩子            this.sleep();        }        this.getBack();    }    // 购买旅行票    public abstract void buyTickets();    // 预定旅店    public abstract void bookingHotel();    // 召集游客    public void conveneVisitors() {        System.out.println("Convening visitors.");    }    // 前往景点    public void goToScenicSpot() {        System.out.println("Go to the scenic spot.");    }    // 参观    public void visit() {        System.out.println("Visit the scenic spot.");    }    // 住宿    public void sleep() {        System.out.println("Have a rest.");    }    // 返回    public abstract void getBack();    // 是否需要住宿    public boolean needRest() {        return true;    }}// 北京一日游导游public class BeiJingGuide extends Guide {    @Override    public void buyTickets() {        System.out.println("Buy bus tickets.");    }    @Override    public void bookingHotel() {        // 因为不需要住宿,所以这里什么都不做    }    @Override    public void getBack() {        System.out.println("Get back by bus.");    }    // 覆盖钩子,取消住宿    @Override    public boolean needRest() {        return false;    }}// 海南三日游导游public class HaiNanGuide extends Guide {    @Override    public void buyTickets() {        System.out.println("Buy plane tickets.");    }    @Override    public void bookingHotel() {        System.out.println("Booking HaiNan Hotel.");    }    @Override    public void getBack() {        System.out.println("Get back by air.");    }}


--END--

热点排行