看过三国志的朋友都知道一句名言:万事具备,只欠东风.
最近在学习SPRING框架的时候对此又有了深层的理解.
最近开发一个几百人的大项目,由于某些因素,不能使用开源框架.我们开发人员商议,准备顺应潮流,使用SPRING框架的某些设计思想来完成工作.
由于大家都没有几百人一起工作的项目经验,所以开始阶段是痛苦而没有成效的.特别在商议相互调用的接口时,简直成了讨价还价的菜市场(每个人的想法,水平,及设计能力的差异).~_~!!!
百无聊赖中,跑去开三国(你们吵你们的吧,我休息先),看到诸葛亮借东风一节,突然灵机一动,这不就是SPRING框架的IOC思想么??我先万事具备再说,只欠东风就OK!想到这里,心中窃喜,于是将需要的接口数据整理出来写了个XML文档,并用DTD定义,直接扔给调用我的家伙,想用我的接口么??我就要这些数据,你看着办吧~~!
于是不管他渴求的表情,自己工作去也.那个心里爽啊~
下面是一些模拟代码,希望能有用:
/*定义依赖注入的数据接口*/
public interface IOCINTERFACE
{
//只定义一个验证方法,验证DTD定义的数据
public boolean validate();
}
////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////
/**/
class IOCObject implement IOCINTERFACE
{
//需要注入的数据
private String username;
public void setUsername(String username)
{
this.username = username;
}
public String getUsername()
{
return this.username ;
}
//验证一下是否是我要的数据
public boolean validate()
{
if(this.username = null)
{
return false;
}
return true;
}
}
////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////
/*再定义一个执行接口*/
public interface OPERATION
{
public void execute();
}
////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////
class Test implement OPERATION
{
//定义操作对象
private IOCObject obj;
public void Test( IOCObject obj)
{
this.obj = obj;
}
public void execute()
{
if(this.obj.validate)
{
//处理业务逻辑
System.out.println(this.obj.getUsername+"hello!");
}
else
{
//异常日志
System.out.println("MB~~~给的什么数据啊~~我叼!")
}
}
}
////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////
/*万事具备了,借东风吧!*/
public class Main
{
public static void main(String[]args)
{
//做个东风先
IOCObject obj = new IOCObject ();
obj .setUsername("KenIT");
//依赖注入了,高兴啊!
Test test = new Test(ob);
//完成工作,打完收功
test.execute();
}
}
////////////////////////////////////////////////////////////////////////////////分割线////////////////////////////////////////////////////////////////////////////////////////
回想来发现IOC就是我们的诸葛老前辈发明的,居然.....,我强烈呼吁收版权税.
中华民族万岁~~~!