中华网通行证
用户名 密码

给JAVA设计开发新手的一些建议和意见(3)(1)
中华网科技 http://tech.china.com 2005-08-03 13:31:43
进入BBS】【进入聊天室】【 推荐给朋友 】【浏览字号: 】【关闭窗口

  【空接口的使用】

  在接口使用的时候,空接口有2种情况:
  1。类似Cloneable,Serializable,他们往往是做一个标记,表示需要某个功能。当然你也可以这么用,来表示你的类具有某个功能,实现了你的某个接口。
  2。你的接口继承了别的接口(非空),你的接口本身没有声明函数。这种情况一般是你不希望用户使用父接口来作为参数类型,因为他们的用途可能不同,此时就可以用空接口来实现。
  
  第一种情况我们不再多说,搜索一下关于Cloneable,Serializable的文章就会了解很多。
  我们来看下面的代码:

  public interface Text
  {
  String getText();
  }
  
  public interface SqlText extends Text
  {
  }
  
  可以看到,Text接口是用于返回一个字符串。而SqlText是一个空接口,它继承了Text接口。也就是说SqlText也是一种Text。但是我们可以知道,任何一个字符串不一定是Sql字符串,所以此时声明了一个SqlText接口来用于表名当前的字符串是一个Sql字符串。你的函数可以这样声明:

  public void doQuery(SqlText aSqlText)

  而不是这样
  
  public void doQuery(Text aText)

  避免用户产生歧义的想法,一眼看去,就明白应该传入一个Sql字符串。  

  【继承层次过多】
  一般来说,继承的层次不要过多,否则使用者可能会讨厌,找一个函数会很麻烦。很多Java语言检查工具都建议你的继承层次不要超过3层。  
  
  【Has A ,Is A,不要滥用继承】

  "我是一个Mp3","我有一个Mp3",其实很容易分辨。但是在实际应用中,往往存在把"我有一个Mp3"的情况当作"我是一个Mp3",或者是为了偷懒方便而放松了对自己的要求,甚至还沾沾自喜,感觉找到一个捷径。(scud以前也干过这种事情)。
  
  以前我曾经这样干过:我的逻辑类直接继承了我的数据库访问类,这样我可以直接在逻辑类里面访问:  

  public MyLogic extends MyDBA
  
  aLogic。getInt("click");
  aLogic。getString("name");  

  看起来是非常方便,但是你的逻辑类就牢牢绑在了DBA上,是一种非常不好的做法。现在我这样声明:

  public MyLogic  
  MyDBA adba;
  
  adba。getInt("click");
  adba。getString("name");  

  其实代码改动不大,但是你的逻辑类不在牢牢绑在DBA身上了,何乐而不为。
  
  其实这种现象在开发人员中间可能经常见到,我们要尽量避免。下面再来看一个例子:
  
  //一个保存分页信息的类  

  public class PageInfo
  {
  private int page;
  private int pageCount;
  private int recPerPage;
  private int recCount;
  
  //get,set method list。。。
  }

首页 上页 | 1 | 2 | 3 | 下页 尾页  共 3

 

50款最具性价比数码相机/MP3推荐!
作者:CSDN.NET/scud 来源: 

发表言论:
笔  名:
查看评论
﹣相关报道
给JAVA设计开发新手的一些建议和意见(2) (2005-08-02 13:41:27)
给JAVA设计开发新手的一些建议和意见(1) (2005-08-01 14:57:07)
JAVA代码编写的30条建议 (2005-07-25 10:22:06)

﹣精彩回顾
·揭秘越南姑娘的“性契约”(组图)
·中国研制成功银河麒麟操作系统
·近处偷拍野狮性爱 野草丛中见柔情(图)
·难得一见“水下分娩”全程跟拍(组图)
·古代性器具及性惩罚工具(组图)
·揭密中外历史上乱伦的名人们(组图)
·探秘世界各地诡异的干尸新娘(组图)
·隋唐两个王朝的九大著名"绿帽子"(组图)
·另类的惨烈:螳螂血战壁虎谁更凶猛(图)
·一分钟平静死去 注射死刑全过程(图)

进入BBS】【进入聊天室】【 推荐给朋友 】【浏览字号: 】【关闭窗口


潮流·时尚
·市场上的天价手机全搜罗
·一周降幅最大手机导购
·FM调频收音功能手机选购
·索尼爱立信三新机曝光
·诺基亚N73音乐版精品赏
·热门便携笔记本搜索导购
·近期最新上市机型大盘点
·矩阵Matrix鼠标垫细评测
·19寸20寸22寸液晶该买谁
·近期几款热卖MP3大推荐
·四大即将退市经典MP3选购
·06年最火七大DC缺点曝光
·六百万像素超值机型推荐
·诺基亚推出随身小音箱
·LG直板巧克力KG99评测
·MOTO新机即将国内上市
·超低价蓝牙手机导购
·130万像素一样拍出好照片
·诺基亚两款蓝牙耳机新品
·索爱纯美折叠机Z558评测

软件下载
·豪杰大眼睛 V2.5
·Foxmail V6.5
·天网防火墙Athena
·极品五笔 V6.8
·PPS网络电视
·超级兔子魔法设置
中华网搜索
站内搜索
全网搜索




热门搜索
耳机 印刷 手机 拖鞋
减速机 钟表 成人用品
减肥 枸杞 T恤 升降机
心理 健康 彩票 招聘
礼品 旅游 猎头 培训

产品服务
·机会!机会不容错过
·中华商机,搜索创新
·准确快捷,搜你所搜
·¥来¥往,尽在中华邮
·中华搜索,贴心搜索




科技频道主编信箱