Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  java  >  正文 设计迷踪:给JAVA设计开发新手的一些建议和意见(三)

设计迷踪:给JAVA设计开发新手的一些建议和意见(三)

发布时间:2019-03-02   编辑:www.jquerycn.cn
jquery中文网为您提供设计迷踪:给JAVA设计开发新手的一些建议和意见(三)等资源,欢迎您收藏本站,我们将为您提供最新的设计迷踪:给JAVA设计开发新手的一些建议和意见(三)资源
【空接口的使用】
 在接口使用的时候,空接口有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");

您可能感兴趣的文章:
设计迷踪:给JAVA设计开发新手的一些建议和意见(一)
设计迷踪:给JAVA设计开发新手的一些建议和意见(二)
设计迷踪:给JAVA设计开发新手的一些建议和意见(三)
设计迷踪:给JAVA设计开发新手的一些建议和意见(四)
Java 简介
学习j2ee流程
设计模式
如何设计一个成功的网站
经典Java线程面试题70道
php程序员可以转java吗?

[关闭]