动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Java教程 ]的信息



本月文章推荐
.Java运算符总结.
.Java基本语法(五)——控制流程.
.谈谈J2SE中的序列化之当序列化遭.
.步入J2EE架构和过程基础教程(2).
.对Java语言入门初学者的一些建议.
.Eclipse快速上手指南(4).
.安全技术 Java与安全性,第2部分.
.野马的性格 Java SE 6.0新特性体.
.判断当前程序是否正在运行.
.Java类装载体系中的隔离性.
.一个连接池的例子(来自JIVE).
.WEB中基于XMLHTTP的简单实例分析.
.使用JAVA中的动态代理实现数据库.
.Java初学者如何迈出AOP第一步.
.如何实现Applet之间跨浏览器窗口.
.(9)MIDP API.
.使用J2EE Web应用的事件功能.
.使用JAXP处理XML文件.
.JAVA相关基础知识(6).
.VBArray 对象.

使用state pattern替代if else

发表日期:2008-1-5 |


      大多数开发人员现在还在使用if else的过程结构,曾看过jdon的banq大哥写的一篇文章,利用command,aop模式替代if else过程结构。当时还不太明白,这几天看了《重构》第一章的影片租赁案例,感慨颇深。下面我来谈一谈为什么要用state pattern替代if else,替代if else有什么好处,以及给出具体代码怎么替代if else。本文参考jdon的“你还在使用if else吗?”及《重构》第一章。
 

首先我们模拟影片租赁过程,顾客租凭影片,影片分为儿童片、普通片、新片。根据影片类型及租凭天数价格各不相同(优惠程度不同),用户累计积分不同。

 

OK ,现在我们使用 if else 表示。

 


 package  com.qujingbo.movie;

 /** */ /**
 * <p/> Title:影片基类
 * </p>
 * <p/> Description:
 * </p>
 * <p/> Date:2006-10-14 15:47:55
 * </p>
 *
 *  @author  EOMS 曲静波
 *  @version  1.0
  */
  public   class  Movie   {

      //  普通片标识
       public   static   int  REGULAR  =   1 ;
   
      //  新片标识
       public   static   int  NEW_RELEASE  =   2 ;
   
      //  儿童片标识
       public   static   int  CHILDREN  =   3 ;
   
      /** */ /**
     * 获取租赁影片总价
     *
     *  @param  movieCode
     * 影片类型
     *  @param  days
     * 租凭天数
     *  @return  租赁影片总价
     *  @throws  MovieException
     * 没有影片类型抛出异常
      */
       public   double  getCharge( int  movieCode,  int  days)  throws  MovieException   {
      double  result  =   0 ;
      //  普通片
       if  (movieCode  ==  Movie.REGULAR)
      //  单价为2
         {
     result  =   2 ;
      //  假如租赁天数大于2则,则优惠
        if  (days  >   2 )   {
     result  +=  (days  -   2 )  *   1.5 ;
     }
      //  返回总价
       return  result;
     }
      //  最新发布片
        else   if  (movieCode  ==  Movie.NEW_RELEASE)   {

上一篇:SWT/JFace开发入门指南之搭建开发环境 人气:482
下一篇:Sun向JCP提交Servlet3.0规范—JSR315 人气:328
浏览全部Java的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-24 Sablog-X v2.0 预览版
2008-7-24 帝国备份王EmpireBak 2008 正式版
2008-7-24 网趣网上购物系统时尚版 v8.2
2008-7-24 纵横B2B电子商务系统XYECS!B2B v
2008-7-24 e路小说小偷 v1.2.0723
2008-7-24 凌风美女图片站程序 v2.2
2008-7-24 TOM15电影收索程序
2008-7-24 清风信息自动采集生成系统 v1.0
2008-7-24 QQ邮箱编辑器 v1.0 (小小菜刀ASP
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵