论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> JAVA认证 >> IT正文
使用state pattern替代if else (4)
 作者:佚名     2007-3-14 16:59:17        来源:不详  浏览次数:

 

 

 

 

 

 

 

 

 电影Movie类,setPrice(String movieClass)(工厂)方法,通过java反射机制实现movieClass(包名,类名)类。若没有movieClass这个类,则抛出MovieException异常。

package com.qujingbo.movie;

/** *//**
 * 

 Title:影片类
 * 


 * 

 Description:
 * 


 * 

 Date:2006-10-14 15:47:55
 * 


 * 
 * @author EOMS 曲静波
 * @version 1.0
 */
public class Movie {
    // 普通片标识
    public static String REGULAR = "com.qujingbo.movie.RegularlPrice";

    // 新片标识
    public static String NEW_RELEASE = "com.qujingbo.movie.NewReleasePrice";

    // 儿童片标识
    public static String CHILDREN = "com.qujingbo.movie.ChildrenPrice";

    private Price price;

    public Price getPrice() {
        return price;
    }

    /** *//**
     * 确定返回具体某个影片类型的实现类,有点像工厂
     * 
     * @param movieCode
     *            影片类型
     * @throws MovieException
     *             若无影片类型则抛异常。
     */
    public void setPrice(String movieClass) throws MovieException {
        try {
            Class cls = Class.forName(movieClass);
            this.price = (Price) cls.newInstance();
        } catch (Exception e) {
            throw new MovieException("影片不存在");
        }
    }
}


给出MovieException源码。

package com.qujingbo.movie;

/** *//**
 * 

 Title:自定义异常
 * 


 * 

 Description:
 * 


 * 

 Date:2006-10-14 19:21:08
 * 


 * 
 * @author EOMS 曲静波
 * @version 1.0
 */
public class MovieException extends Exception {
    public MovieException(String msg) {
        super(msg);
    }
}

下面模访一个顾客租赁影片。

package com.qujingbo.movie;

/** *//**
 * 

 Title:
 * 


 * 

 Description:
 * 


 * 

 Date:2006-10-14 19:26:23
 * 


 * 
 * @author EOMS 曲静波
 * @version 1.0
 */
public class Customer {
    /** *//**
     * 消费(测试程序)
     * 
     * @throws MovieException
     *             若没有影片,抛出异常
     */
    public void consume() throws MovieException {
        // 普通电影
        Movie regularMovie = new Movie();
        regularMovie.setPrice(Movie.REGULAR);
        // 最新发布电影
        Movie newReleaseMovie = new Movie();
        newReleaseMovie.setPrice(Movie.NEW_RELEASE);
        // 儿童电影
        Movie childrenMovie = new Movie();
        childrenMovie.setPrice(Movie.CHILDREN);

        System.out.println("普通影片租赁10天的价格"
                + regularMovie.getPrice().getCharge(10));
        System.out.println("最新影片租赁10天的价格"
                + newReleaseMovie.getPrice().getCharge(10));
        System.out.println("儿童影片租赁10天的价格"
                + childrenMovie.getPrice().getCharge(10));
        
        System.out.println("普通影片租赁10天的积分"
                + regularMovie.getPrice().getIntegral(10));
        System.out.println("最新影片租赁10天的积分"
                + newReleaseMovie.getPrice().getIntegral(10));
        System.out.println("儿童影片租赁10天的积分"
                + childrenMovie.getPrice().getIntegral(10));
        
        
    }
}


责任编辑:lss
  相关新闻
WebWork拦截器(Interceptor)使用方法
使用AppFuse框架进行开发的总结
Struts开发指南之Taglib的初步了解
快速上手Spring--4.安装和使用IDE
TestKing 070-299 V14
Oracle诊断工具-RDA使用概述
TestKing 070-296 V45.1
Struts 中 html:options 的使用
允许内部用户使用Outlook Web Access
在Struts框架下使用时间类型
TestKing 070-299 V14
TestKing 070-294 V28
TestKing 070-291 V49
TestKing 070-296 V45.1
TestKing 070-272 V13
TestKing 070-271 V14
Oracle诊断工具-RDA使用概述
了解 Struts 框架的全新后代--Shale
Struts开发指南之Taglib的初步了解
在Struts框架下使用时间类型
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号