论坛首页 综合技术论坛

Java Mixin & Service Locator

浏览 3875 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-02  
嗯,俺就是和静态类型干上了。这次实现了两个东西,Mixin和Service Locator。代码说话:
public interface Kisser {
	void kissYourKissable();
}

public interface Kissable {
	void kiss();
}

public class Boy implements Kissable {
	public void kiss() {
		System.out.println("kiss");
	}
}

public abstract class KisserMixin implements Reborn, Kisser {
	private Kissable kissable = _(Kissable.class);
	public void kissYourKissable() {
		kissable.kiss();
	}
}

public abstract class Girl implements Kisser {

}

public class ContainerDemo extends RebornContainer {
	public ContainerDemo() {
		reg(Boy.class);
		reg(KisserMixin.class);
	}
	public static void main(String[] args) {
		new ContainerDemo().demo();
	}
	private void demo() {
		Girl girl = _(Girl.class);
		girl.kissYourKissable();
	}
}

Mixin体现在Girl implements Kisser上。在_(Girl.class)的时候,容器会把注册的Mixin给织入。Service Locator体现在private Kissable kissable = _(Kissable.class);上。因为mixin必然要导致类是abstract的,所以放弃了new,采用_(class)的办法来获得对象实例。强侵入性的代价的收益是实现了Service Locator和Mixin。
   发表时间:2006-12-03  
路过,关注。
0 请登录后投票
   发表时间:2006-12-04  
无所谓,对程序整体价值提升不高。
0 请登录后投票
   发表时间:2006-12-04  
ray_linn 写道
无所谓,对程序整体价值提升不高。

拓展思路,拓展思路而已。。。
搞J2EE的也要开拓思路嘛,像EasyMock那样搞搞语法糖不也挺好嘛。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics