面試題整理

這幾天不斷地面試迂曲,每個(gè)面試官問(wèn)的問(wèn)題各不相同,問(wèn)的天花亂墜寥袭,把我弄得暈頭亂想路捧,所以把面試經(jīng)驗(yàn)整理一下,方便自己閱讀和復(fù)習(xí)传黄。

實(shí)際上還是自己的基礎(chǔ)不過(guò)關(guān)杰扫,只是知道寫一味地寫,并不知道其中的內(nèi)涵膘掰,希望各位以此為鑒章姓。

1、C語(yǔ)言和Object-C之間的區(qū)別识埋?

C語(yǔ)言是面向過(guò)程

Object-C語(yǔ)言是面向?qū)ο蟮?/p>

2啤覆、面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別以及優(yōu)缺點(diǎn)?

面向過(guò)程就是分析出解決問(wèn)題所需要的步驟惭聂,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時(shí)候一個(gè)一個(gè)依次調(diào)用就可以了相恃。

面向?qū)ο?/a>是把構(gòu)成問(wèn)題事務(wù)分解成各個(gè)對(duì)象辜纲,建立對(duì)象的目的不是為了完成一個(gè)步驟,而是為了描敘某個(gè)事物在整個(gè)解決問(wèn)題的步驟中的行為。

例如五子棋耕腾,面向過(guò)程的設(shè)計(jì)思路就是首先分析問(wèn)題的步驟:1见剩、開始游戲,2扫俺、黑子先走苍苞,3、繪制畫面狼纬,4羹呵、判斷輸贏,5疗琉、輪到白子冈欢,6、繪制畫面盈简,7凑耻、判斷輸贏,8柠贤、返回步驟2香浩,9、輸出最后結(jié)果臼勉。把上面每個(gè)步驟用分別的函數(shù)來(lái)實(shí)現(xiàn)邻吭,問(wèn)題就解決了。

面向?qū)ο?/a>的設(shè)計(jì)則是從另外的思路來(lái)解決問(wèn)題坚俗。整個(gè)五子棋可以分為 1镜盯、黑白雙方,這兩方的行為是一模一樣的猖败,2速缆、棋盤系統(tǒng),負(fù)責(zé)繪制畫面恩闻,3艺糜、規(guī)則系統(tǒng),負(fù)責(zé)判定諸如犯規(guī)幢尚、輸贏等破停。第一類對(duì)象(玩家對(duì)象)負(fù)責(zé)接受用戶輸入,并告知第二類對(duì)象(棋盤對(duì)象)棋子布局的變化尉剩,棋盤對(duì)象接收到了棋子的i變化就要負(fù)責(zé)在屏幕上面顯示出這種變化真慢,同時(shí)利用第三類對(duì)象(規(guī)則系統(tǒng))來(lái)對(duì)棋局進(jìn)行判定。

可以明顯地看出理茎,面向?qū)ο?/a>是以功能來(lái)劃分問(wèn)題黑界,而不是步驟管嬉。同樣是繪制棋局,這樣的行為在面向過(guò)程的設(shè)計(jì)中分散在了總多步驟中朗鸠,很可能出現(xiàn)不同的繪制版本蚯撩,因?yàn)橥ǔTO(shè)計(jì)人員會(huì)考慮到實(shí)際情況進(jìn)行各種各樣的簡(jiǎn)化。而面向?qū)ο蟮脑O(shè)計(jì)中烛占,繪圖只可能在棋盤對(duì)象中出現(xiàn)胎挎,從而保證了繪圖的統(tǒng)一。

功能上的統(tǒng)一保證了面向?qū)ο笤O(shè)計(jì)的可擴(kuò)展性忆家。比如我要加入悔棋的功能犹菇,如果要改動(dòng)面向過(guò)程的設(shè)計(jì),那么從輸入到判斷到顯示這一連串的步驟都要改動(dòng)弦赖,甚至步驟之間的循序都要進(jìn)行大規(guī)模調(diào)整项栏。如果是面向?qū)ο蟮脑挘挥酶膭?dòng)棋盤對(duì)象就行了蹬竖,棋盤系統(tǒng)保存了黑白雙方的棋譜沼沈,簡(jiǎn)單回溯就可以了,而顯示和規(guī)則判斷則不用顧及币厕,同時(shí)整個(gè)對(duì)對(duì)象功能的調(diào)用順序都沒(méi)有變化列另,改動(dòng)只是局部的。

再比如我要把這個(gè)五子棋游戲改為圍棋游戲旦装,如果你是面向過(guò)程設(shè)計(jì)页衙,那么五子棋的規(guī)則就分布在了你的程序的每一個(gè)角落,要改動(dòng)還不如重寫阴绢。但是如果你當(dāng)初就是面向?qū)ο蟮脑O(shè)計(jì)店乐,那么你只用改動(dòng)規(guī)則對(duì)象就可以了,五子棋和圍棋的區(qū)別不就是規(guī)則嗎呻袭?(當(dāng)然棋盤大小好像也不一樣眨八,但是你會(huì)覺(jué)得這是一個(gè)難題嗎?直接在棋盤對(duì)象中進(jìn)行一番小改動(dòng)就可以了左电。)而下棋的大致步驟從面向?qū)ο蟮慕嵌葋?lái)看沒(méi)有任何變化廉侧。

當(dāng)然,要達(dá)到改動(dòng)只是局部的需要設(shè)計(jì)的人有足夠的經(jīng)驗(yàn)篓足,使用對(duì)象不能保證你的程序就是面向?qū)ο蠖翁埽鯇W(xué)者或者很蹩腳的程序員很可能以面向?qū)ο笾摱忻嫦蜻^(guò)程之實(shí),這樣設(shè)計(jì)出來(lái)的所謂面向?qū)ο蟮某绦蚝茈y有良好的可移植性可擴(kuò)展性栈拖。

3连舍、StoreBoard、XIB涩哟、純代碼三者之間的優(yōu)缺點(diǎn)索赏?

一诗鸭、手寫代碼UI

1、優(yōu)勢(shì)

√適合大型項(xiàng)目大規(guī)模使用参滴,利于版本管理、追蹤改動(dòng)以及代碼合并

√最好的代碼重用性

2锻弓、遺憾

√慢砾赔,開發(fā)周期長(zhǎng),維護(hù)代碼復(fù)雜

√自動(dòng)布局AutoLayout困難

二青灼、xib文件組織viewController或者view

1暴心、優(yōu)勢(shì)

√開發(fā)速度快

√在版本管理上和純代碼的差異并不是很大,易讀易維護(hù)

2杂拨、遺憾

√ ?xib中的設(shè)置往往并非最終設(shè)置专普,UI設(shè)計(jì)會(huì)被代碼所覆蓋

(如果選擇xib,那么要盡量將xib的工作和代碼的工作隔離開來(lái):能夠使用xib完成的內(nèi)容就統(tǒng)一使用xib來(lái)做弹沽,而不要說(shuō)三個(gè)Label其中兩個(gè)在xib設(shè)置了字體而另一個(gè)卻在代碼中完成檀夹。盡量?jī)H保持必要的、較少的IBOutlet和IBAction會(huì)是一個(gè)好方法策橘。)

三炸渡、storyBoard

1、優(yōu)勢(shì)

√可以看到每個(gè)ViewController的布局樣式丽已,也可以明確地知道各個(gè)ViewController之間的轉(zhuǎn)換關(guān)系

√代碼量少蚌堵,開發(fā)周期短

√關(guān)鍵是已經(jīng)成為新建項(xiàng)目時(shí)候的默認(rèn)配置,代表著蘋果以后的方向和重心

2沛婴、遺憾

√很難多人協(xié)作

√ ?ViewController的重用和自定義的view的處理

以上答案是某位大神簡(jiǎn)單的介紹吼畏,我也說(shuō)說(shuō)自己的看法:

純代碼適合項(xiàng)目規(guī)模大邏輯較為復(fù)雜的頁(yè)面,可以封裝嘁灯,重構(gòu)泻蚊,復(fù)用等特點(diǎn),利于我們管理也可以版本控制旁仿,例如實(shí)現(xiàn)動(dòng)畫藕夫,復(fù)雜的邏輯頁(yè)面的處理必須的用代碼來(lái)實(shí)現(xiàn),用xib或者storeboard無(wú)法實(shí)現(xiàn)枯冈,還的用代碼來(lái)實(shí)現(xiàn)毅贮,還的托各種的線,是代碼多尘奏,復(fù)用底滩褥,不利于管理等。

純代碼 的缺點(diǎn):開發(fā)周期長(zhǎng)炫加,布局困難瑰煎,不過(guò)現(xiàn)在有masonry自動(dòng)布局和蘋果自帶的AutoLayout使我們開發(fā)起來(lái)簡(jiǎn)單方便的多了铺然。

4、你知道哪些設(shè)計(jì)模式酒甸?他們的優(yōu)缺點(diǎn)和區(qū)別?

設(shè)計(jì)模式:MVC魄健,代理,單例插勤、委托沽瘦、通知、KVO农尖、KVC等

MVC:

MVC

01.Model

Model代表了描述業(yè)務(wù)路邏輯析恋,業(yè)務(wù)模型、數(shù)據(jù)操作盛卡、數(shù)據(jù)模型的一系列類的集合助隧。這層也定義了數(shù)據(jù)修改和操作的業(yè)務(wù)規(guī)則。

02.View

View代表了UI組件滑沧,像CSS并村,JQuery,html等嚎货。他只負(fù)責(zé)展示從controller接收到的數(shù)據(jù)橘霎。也就是把model轉(zhuǎn)化成UI。

03.Controller

Controll負(fù)責(zé)處理流入的請(qǐng)求殖属。它通過(guò)View來(lái)接受用戶的輸入姐叁,之后利用Model來(lái)處理用戶的數(shù)據(jù),最后把結(jié)果返回給View洗显。Controll就是View和Model之間的一個(gè)協(xié)調(diào)者外潜。

代理:

為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問(wèn)。在某些情況下挠唆,一個(gè)對(duì)象不適合或者不能直接引用另一個(gè)對(duì)象处窥,而代理對(duì)象可以在客戶端和目標(biāo)對(duì)象之間起到中介的作用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末玄组,一起剝皮案震驚了整個(gè)濱河市滔驾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌俄讹,老刑警劉巖哆致,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異患膛,居然都是意外死亡摊阀,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胞此,“玉大人臣咖,你說(shuō)我怎么就攤上這事∈#” “怎么了夺蛇?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)酣胀。 經(jīng)常有香客問(wèn)我蚊惯,道長(zhǎng),這世上最難降的妖魔是什么灵临? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮趴荸,結(jié)果婚禮上儒溉,老公的妹妹穿的比我還像新娘。我一直安慰自己发钝,他們只是感情好顿涣,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酝豪,像睡著了一般涛碑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孵淘,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天蒲障,我揣著相機(jī)與錄音,去河邊找鬼瘫证。 笑死揉阎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的背捌。 我是一名探鬼主播毙籽,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼毡庆!你這毒婦竟也來(lái)了坑赡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤么抗,失蹤者是張志新(化名)和其女友劉穎毅否,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乖坠,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搀突,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仰迁。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡甸昏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出徐许,到底是詐尸還是另有隱情施蜜,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布雌隅,位于F島的核電站翻默,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏恰起。R本人自食惡果不足惜修械,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望检盼。 院中可真熱鬧肯污,春花似錦、人聲如沸吨枉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)貌亭。三九已至柬唯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間圃庭,已是汗流浹背锄奢。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留剧腻,地道東北人斟薇。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像恕酸,于是被迫代替她去往敵國(guó)和親堪滨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 序言 目前形勢(shì)蕊温,參加到iOS隊(duì)伍的人是越來(lái)越多袱箱,甚至已經(jīng)到供過(guò)于求了。今年义矛,找過(guò)工作人可能會(huì)更深刻地體會(huì)到今年的就...
    恒愛DE問(wèn)候閱讀 5,361評(píng)論 0 9
  • OC的理解與特性O(shè)C作為一門面向?qū)ο蟮恼Z(yǔ)言发笔,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝、繼承凉翻、多態(tài)了讨。它既具有靜態(tài)語(yǔ)言的特性(...
    LIANMING_LI閱讀 516評(píng)論 0 0
  • 設(shè)計(jì)模式是什么? 你知道哪些設(shè)計(jì)模式,并簡(jiǎn)要敘述前计? 設(shè)計(jì)模式是一種編碼經(jīng)驗(yàn)胞谭,就是用比較成熟的邏輯去處理某一種類型的...
    Jt_Self閱讀 751評(píng)論 0 4
  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    程序員poetry閱讀 114,418評(píng)論 24 450
  • 面試題摘錄于網(wǎng)絡(luò), 用于個(gè)人復(fù)習(xí)使用男杈。 id 聲明的對(duì)象有什么特性丈屹? 答:id 聲明的對(duì)象具有運(yùn)行時(shí)的特性,即可以...
    普通青年閱讀 409評(píng)論 0 0