在 Java 类型中对称设计的重要性

ZDNet软件频道 时间:2005-01-06 作者:Builder.com |  我要评论()
本文关键词:DavidPetersheim javatips
在这篇文章中,对称设计是指如果一个方法引起了一种效果,逻辑上相反的方法应该引起相对的效果。这个问题可能很微妙,但是结果可能非常显著。
本文译自Builder.com,未经许可请勿转载

在这篇文章中,对称设计是指如果一个方法引起了一种效果,逻辑上相反的方法应该引起相对的效果。这个问题可能很微妙,但是结果可能非常显著。

例如,考虑下面这种情况。你有一个类型ConversionService,这个类型实现流行的生命周期模式。

public interface LifeCycle {
   void init();
   void start();
   void stop();
   void destroy();
}

...
public class ConversionService implements LifeCycle {
   private Connection conn;
   ...
   public void init() {
      conn = new Connection(getServerConfig());
      conn.open();
   }
   
   public void start() {
      ...
   }

   public void stop() {
      ...
   }

   public void destroy() {
      conn.close();
      conn = null;
   }
}

在ConversionService的 init() 方法中会创建和打开一个Connection 对象。在这个服务的生命中,Connection 对象被多次使用。然后,当服务被永久地关闭时,destroy() 方法被调用。

因为destroy() 方法逻辑上与 init() 方法相反,所以这就是Connection 应该被销毁的地方。另外一个同样有效的做法是在 start() 方法中创建Connection 对象,然后在 stop() 方法中销毁它。你应该根据你所期望的效果选择需要使用哪种方法。错误的做法是在 init() 方法中创建Connection 对象,然后在 stop() 方法中销毁Connection 对象。

将你的类组织为相反的方法具有相反的效果,你将会使你的更加容易使用并防止出现意料之外的行为。对象还是越平凡越好。


David PetersheimGenscape公司的应用程序开发部主任。他设计和开发用于获取和处理实时能源数据的服务器端应用程序。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134