内部类使用场景一:只被外部类所使用

我们说这个内部类依附于它的外部类而存在,可能的原因有:
1、不可能为其他的类使用;
2、出于某种原因,不能被其他类引用,可能会引起错误。
3、当前的类过大,比如某个方法,里面写了非常多的代码,需要重构,如果你想抽象到另外一个类里面,那么不妨考虑一下内部类,因为,这些代码是从当前类抽象出来的,只被当前类所使用,那么用内部类实现也是很好的。下面我们以一个大家熟悉的例子来说明。

这段时间做电信的短信下发的项目,需要对上行用户的手机号做特殊处理,然后下发短信,那么主要功能是下短信,但是在下发之前,需要对用户号码做出处理,满足下面下短信的时候使用。
public class SendSms implements SpInfo
{
          public String sendSms(String userID,String productID,int OPType)
          {
                  String res = null;
                  。。。
                  SendSms.AddressBean ab = new SendSms.AddressBean();//获得内部类的实例
                  //用内部类来加工处理用户号码
                  org.apache.axis.types.URI[] addressesuri = ab.getDownAddress(userID);
                  。。。

                  //下面开始组织soapheader,此处也可以用内部类来实现的。
                  RequestSOAPHeader soapHeader = DownHeader.downHeader_ismp(productID, addressesuri);
                  。。。
                  SMS downsms = new SMS();
                  res = downsms.sendSMS(addressesuri, senderName, charging, down_message,
                  receiptRequest, soapHeader);
              return res;
          }
         
          //内部类----此类只被当前的外部类所使用
          public class AddressBean
          {
                  public org.apache.axis.types.URI[] getDownAddress(String senderAddress)
                  {
                          org.apache.axis.types.URI[] addressesuri = null;
                          String proaddress = "tel:" + senderAddress;
                          String[] address = new String[] {proaddress};
                          addressesuri = new org.apache.axis.types.URI[address.length];
                          try
                           {
                                   for (int i = 0; i < address.length; i++)
                                   {
                                            addressesuri[i] = new URI(address[i]);
                                   }
                           }catch(Exception ex)
                           {
                                   ex.printStackTrace();
                           }
                          return addressesuri;
                  }
          }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值