WEB开发网
开发学院软件开发Java 轻量级开发的成功秘诀,第 4 部分: 轻量级容器的比... 阅读

轻量级开发的成功秘诀,第 4 部分: 轻量级容器的比较

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 清单 1. 两个 Kiss 组件publicclassBoy{publicvoidkiss(Objectkisser){System.out.println("Iwaskissedby"+kisser);}}publicclassGirl{Boyboy;publicGirl(


清单 1. 两个 Kiss 组件
public class Boy { 
  public void kiss(Object kisser) { 
    System.out.println("I was kissed by " + kisser); 
  } 
} 
public class Girl { 
  Boy boy; 
  public Girl(Boy boy) { 
    this.boy = boy; 
  } 
  public void kissSomeone() { 
    boy.kiss(this); 
  } 
} 

这两个类是自解释的。Girl 对 Boy 有依赖关系。该依赖关系将通过构造函数被注入。先实例化一个容器:

MutablePicoContainer pico = new DefaultPicoContainer(); 

然后注册两个组件:

pico.registerComponentImplementation(Boy.class); 
pico.registerComponentImplementation(Girl.class); 

稍后您可以向 PicoContainer 请求一个对象,然后操作它:

Girl girl = (Girl) pico.getComponentInstance(Girl.class); 
girl.kissSomeone(); 

这样就差不多了。编程模型是优雅的,基于构造函数的风格意味着您无需包括无参构造函数。对本例中的 Girl 调用这种函数将会使该对象处于不一致的状态,因为 kiss 方法将抛出异常。

加法器示例 (HiveMind)

现在,让我们看一下 HiveMind 的编程示例。从 Apache Jakarta Project 下载 HiveMind,然后查看加法器示例。您会看到接口和实现。(记住:HiveMind 强制编写接口。)


清单 2. 加法器示例接口和实现
public interface Adder 
{ 
  public double add(double arg0, double arg1); 
} 
public class AdderImpl implements Adder 
{ 
  public double add(double arg0, double arg1) 
  { 
    return arg0 + arg1; 
  } 
} 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:轻量级 开发 成功

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接