久久综合九色综合97婷婷-美女视频黄频a免费-精品日本一区二区三区在线观看-日韩中文无码有码免费视频-亚洲中文字幕无码专区-扒开双腿疯狂进出爽爽爽动态照片-国产乱理伦片在线观看夜-高清极品美女毛茸茸-欧美寡妇性猛交XXX-国产亚洲精品99在线播放-日韩美女毛片又爽又大毛片,99久久久无码国产精品9,国产成a人片在线观看视频下载,欧美疯狂xxxx吞精视频

有趣生活

當前位置:首頁>職場>java 架構師面試題及回答(Java開發面試題詳解)

java 架構師面試題及回答(Java開發面試題詳解)

發布時間:2024-01-24閱讀(15)

導讀IoC就是InversionofControl,控制反轉。在Java開發中,IoC意味著將你設計好的類交給系統去控制,而不是在你的類內部控制。這稱為控制反轉....

IoC就是Inversion of Control,控制反轉。在Java開發中,IoC意味著將你設計好的類交給系統去控制,而不是在你的類內部控制。這稱為控制反轉。

下面我們以幾個例子來說明什么是IoC。假設我們要設計一個Girl和一個Boy類,其中Girl有kiss方法,即Girl想要Kiss一個Boy。那么,我們的問題是,Girl如何能夠認識這個Boy?

java 架構師面試題及回答(Java開發面試題詳解)(1)

在我們中國,常見的MM與GG的認識方式有以下幾種:1青梅竹馬;2親友介紹;3父母包辦。 那么哪一種才是更好呢?

青梅竹馬:Girl從小就知道自己的Boy。

java 架構師面試題及回答(Java開發面試題詳解)(2)

public class Girl ...{

void kiss()...{

Boy boy = new Boy();

}

}

然而從開始就創建的Boy缺點就是無法在更換。并且要負責Boy的整個生命周期。如果我們的Girl想要換一個怎么辦?(筆者嚴重不支持Girl經常更換Boy) 親友介紹:由中間人負責提供Boy來見面。

java 架構師面試題及回答(Java開發面試題詳解)(3)

public class Girl ...{

void kiss()...{

Boy boy = BoyFactory.createBoy();

}

}

親友介紹,固然是好。如果不滿意,盡管另外換一個好了。但是,親友BoyFactory經常是以Singleton的形式出現,不然就是,存在于Globals,無處不在,無處不能。實在是太繁瑣了一點,不夠靈活。我為什么一定要這個親友摻和進來呢?為什么一定要付給她介紹費呢?萬一我的好朋友愛上了我的男朋友呢?

父母包辦:一切交給父母,自己不用費吹灰之力,只需要等著Kiss就好了。

public class Girl ...{

void kiss(Boy boy)...{

// kiss boy

boy.kiss();

}

}

Well,這是對Girl非常好的方法,只要想辦法賄賂了Girl的父母,并把Boy交給他。那么我們就可以輕松的和Girl來Kiss了。看來幾千年傳統的父母之命還真是有用哦。至少Boy和Girl不用自己瞎忙乎了。

這就是IOC,將對象的創建和獲取提取到外部。由外部容器提供需要的組件。

我們知道好萊塢原則:“Do not call us, we will call you.” 意思就是,You, girlie, do not call the boy. We will feed you a boy。

我們還應該知道依賴倒轉原則即 Dependence Inversion Princinple,DIP。Eric Gamma說,要面向抽象編程。面向接口編程是面向對象的核心。

java 架構師面試題及回答(Java開發面試題詳解)(4)

組件應該分為兩部分,即Service, 所提供功能的聲明Implementation, Service的實現好處是:多實現可以任意切換,防止 “everything depends on everything” 問題.即具體依賴于具體。

所以,我們的Boy應該是實現Kissable接口。這樣一旦Girl不想kiss可惡的Boy的話,還可以kiss可愛的kitten和慈祥的grandmother。

這樣說是不是容易理解多了,如果你還有什么疑問的話,可以加入465042726,一起交流!

TAGS標簽:  java  架構  師面  試題  回答  java 架構師面試

歡迎分享轉載→http://www.avcorse.com/read-226721.html

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖