諸葛亮與IOC的關系
看過三國志的朋友都知道一句名言:萬事具備,只欠東風.
最近在學習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就是我們的諸葛老前輩發明的,居然.....,我強烈呼吁收版權稅.
中華民族萬歲~~~!