您的位置:逆风者 新闻资讯 正文
 添加时间:2007-11-07 原文发表:2007-11-07 人气:24

本文章共6680字,分5页,当前第2页,快速翻页:
 

  public static final String CANADA = "Canada"; 
  private String address; 
  private String name; 
  private String zip, state, type; 
逆风者
  public boolean isValidAddress() { 
          … 
          … 
  } 
  public Customer(String inp_name, String inp_address, 
                  String inp_zip, String inp_state, 
                  String inp_type) { 
    name = inp_name; 
    address = inp_address; 
    zip = inp_zip; 
    state = inp_state; 
    type = inp_type; 
  } 
}//end of class 
  不同的客户对象创建Customer对象并调用(invoke)isValidAddress方法验证客户地址的有效性。为了验证客户地址的有效性,Customer类期望利用一个地址验证类(address validator class),这个验证类提供了在接口AddressValidator中声明的接口。

  Listing 20.2: AddressValidator as an Interface

public interface AddressValidator { 
  public boolean isValidAddress(String inp_address, 
     String inp_zip, String inp_state); 
}//end of class 

  让我们定义一个USAddress的验证类,来验证给定的U.S地址。

  Listing 20.3: USAddress Class

class USAddress implements AddressValidator { 
  public boolean isValidAddress(String inp_address, 
     String inp_zip, String inp_state) { 
   if (inp_address.trim().length() < 10) 
     return false; 
   if (inp_zip.trim().length() < 5) 
     return false; 
   if (inp_zip.trim().length() > 10) 
     return false; 
   if (inp_state.trim().length() != 2) 
     return false; 
   return true; 
  } 
}//end of class 

  USAddress类实现AddressValidator接口,因此Customer对象使用USAddress实例作为验证客户地址过程的一部分是没有任何问题的。

  Listing 20.4: Customer Class Using the USAddress Class

class Customer { 
          … 
          … 
 public boolean isValidAddress() { 
   //get an appropriate address validator 
   AddressValidator validator = getValidator(type); 
   //Polymorphic call to validate the address 
   return validator.isValidAddress(address, zip, state); 
 } 
 private AddressValidator getValidator(String custType) { 
   AddressValidator validator = null; 
 

本文章更多内容<<上一页 - 1 - 2 - 3 - 4 - 5 - 下一页>>
相关文章

专家看台:真正的程序员天生爱数学
在PHPX对于 类 问题的回帖
微软将在Visual Studio开发平台中整合F#语言
个人网页中必不可少的十五大Web API
网站真的能够赚钱吗?
Linux操作系统中七件超厉害的武器
一个黑客的独白
解析:轻松接触SQL Server和嵌入式 SQL
Java上的PHP:对两者都好?
病毒专家-王江民不可思议的传奇
一等奖选手免试读北大清华
“我心飞扬”易语言编程大奖赛开始了
计算机时代的战争——黑客游戏
微软推出房屋3D模型制作工具:Virtual Eart
SQL Server 2008综合数据可编程性
免费午餐已经结束——软件历史性地向并发靠
微软公司2008新技术预览
易语言4.06正式版发布

相关评论


本文章所属分类:首页 新闻资讯

  热门关键字: