iOS編程開發(fā)筆記1——OOP,iOS,MVC

OOP,iOS,MVC

為陵城等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及陵城網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站設計制作、網(wǎng)站設計、陵城網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

何政達

【前言】:寫這篇文章的目的是總結(jié)一下這幾天學到的有關iOS編程的有關知識點。主要分三部分:OOP的設計理念;iOS的構(gòu)成;MVC的具體應用。

Part I:OOP

說起OOP,大家都知道是什么——面向?qū)ο蟪绦蛟O計(Object-OrientedProgramming)。但是我們?yōu)槭裁匆褂眠@樣的一種設計模式來進行我們的程序設計呢?記得一開始學習編程的時候是小學六年級,當時學習的是BASIC;上了初中以后學習PASCAL語言;上了高中開始學習C語言;到了大學之后逐漸熟悉了Java,Python,Object-C。在常用的設計模式當中,面向過程和面向?qū)ο筮@兩種設計模式是使用最廣泛的。面向過程往往用于一個具體任務的設計實現(xiàn)(比如在科學計算當中具體算法的實現(xiàn));而面向?qū)ο蟮脑O計模式往往是針對可視化程序、網(wǎng)絡以及移動程序設計的;在這些程序當中,可能沒有一個真正線性的從頭到尾的“流程”。比如一個程序上有許多按鈕,用戶可能隨意按任何一個按鈕,而且人和人之間選擇的方式又有所區(qū)別,因此順序式的程序設計顯然不能滿足我們對于程序的高要求。那么下面我們就用非常簡單的語言來描述一下什么叫面向?qū)ο蟪绦蛟O計。

面向?qū)ο蟪绦蛟O計的靈魂概念是“對象”(別想歪了。。。。)。一個對象就是一個“實例物體”,它具有兩種最基本的屬性:(1)將自己與別人進行區(qū)分的instantvariable(2)自己可以執(zhí)行的一些method。從這我們就可以知道我們使用一個對象的方式其實非常簡單:利用instant variable找到我們想用的對象,然后再使用方法調(diào)用來運用相關的方法來完成任務。對象與對象之間的協(xié)作也是非常重要的一個方面,我們使用一種所謂“protocol”的方法來進行這樣的協(xié)作,用來完成更復雜的任務。當然還可以有delegate這樣的復雜關系(一個對象的方法會使用另一個對象的方法)。

那么我們?nèi)绾稳uild一個對象呢?這就需要一個抽象化的思維:類。比如我們?nèi)?,你和我都是人的實例(也就是對象),我們有自己的名字、年齡、身高、體重,這些數(shù)據(jù)就是我們的instantvariables;同時我們還擁有一些方法:說話、唱歌、吃飯等等,這些方法說明了我們可以做什么事情。但是人作為一個概念卻具有廣泛的共性,這樣我們就可以將這樣的共性提取出來,和對象一樣,進行兩部分的設計:(1)instantvariables(2)methods。當我們建立好了一個類以后,我們就可以利用類中的Init(初始化)方法來新建一個對象并對其進行初始化。而對于Instantvariable(在Object-C當中稱為property)我們也會有相應的getter與setter來進行選擇和處理。

要想良好的使用OOP的程序設計模式,思考方式的轉(zhuǎn)變必不可少。原來我們都是以“算法”為中心,以具體的步驟為中心。但是在OOP設計模式中,我們更關心的是Object之間的相互協(xié)作來完成復雜的任務。而且在OOP當中,重用性和封裝程度是非常重要的兩個指標,我們需要盡可能增加我們類的重用性以及盡可能將我們需要的功能封裝到類當中。當然如果我們需要對類進行進一步的細節(jié)化(但又不是直接新建一個object),那么這個時候就開始了inherite(繼承)的觀念。目前我還沒有學到有關于繼承的深層次的東西,因此這次就不在這里敘述。

總結(jié)一下,OOP的核心就是:類àObjectàObject之間的協(xié)作。

iOS

什么是iOS?iOS包括哪些東西?這是我們在進行iOS開發(fā)之前必須要搞清楚的問題。iOS是運行在iphone以及ipad上的操作系統(tǒng)。它是Unix為底層的一個移動端操作系統(tǒng)。而在unix kernel之上又加了許多的應用和接口(API),以及相應的框架(Framework)。因此iOS最核心的應該是:(1)Objective-C語言(2)Cocoa Touch框架(3)其他的重要服務(視頻、音頻、網(wǎng)絡、游戲等等)。在StanfordCS139P第一講的PPT當中有詳細的介紹。因此在這里就不贅述了,如果好奇想了解更多,不妨去看看第一講的PPT。因此學習iOS程序設計最困難的也就是掌握Cocoa Touch以及iOS包含的眾多Framework。我們要清楚:所有的Framework都是OOP的,它們都使用OOP的設計理念來進行設計并進行整合的。因此整個iOSprogramming就是OOP。這點非常的重要。

MVC

在iOS編程當中,我們使用的設計模式是MVC(Model-View-Controller)。那么下面就分別按照Model,View,Controller進行總結(jié)。

Model顧名思義就是你的程序是做什么的,你的程序的具體實現(xiàn)思路怎樣(注意:在model當中的邏輯是完全不考慮UI的,我們就在純粹的思維上去進行思考)。它會包含你的程序所需要的所有數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)結(jié)構(gòu)之間的相互作用關系。這就是model。有了model,就知道程序是如何去做的了。

View就是我們程序和用戶進行交互的地方,也是我們?nèi)绾卧O計讓我們的程序去執(zhí)行的地方,但是注意:View完全不知道我們要執(zhí)行的是什么東西。它只聽Controller的話。Controller讓它干嘛,它就干嘛。讓它顯示什么就顯示什么。

Controller是連接Model和View的橋梁,也是我們需要在Xcode編程當中花大力氣去編寫的。Controller可以向Model詢問,也可以向View詢問。

Model,View,Controller之間的關系:

(1)   Controller可以指向Model以及View

(2)  Model絕對不能和View進行互動

(3)  Model如果改變想提醒Controller,需要使用一種類似于“radio”的方式進行

(4)  View如何受到互動(比如用戶按了一個按鈕),那么它會以target-action的方式告訴Controller,然后等待Controller告訴它下一步應該如何去做。

(5)  View也會和Controller有兩種方式的互動:一種稱為Data Source,另外一種是“did,should, would”形式的。這個在不同的UIView的Object中會有應用。

如果我們熟練掌握了上面5種MVC中的交互方式,我們就能很好的使用Xcode以及iOS中的Framework,因為它們的設計都是基于MVC的。

【總結(jié)】:在上面我們簡單的總結(jié)了OOP,iOS以及MVC的相關知識點。當然我才剛剛開始接觸iOS,后面還有很長的路要走,要寫許多許多自己的class;也要熟悉iOS所提供的Framework以及相應的SDK。千里之行始于足下,加油吧。

本文題目:iOS編程開發(fā)筆記1——OOP,iOS,MVC
分享網(wǎng)址:http://bm7419.com/article0/jdssio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供響應式網(wǎng)站、商城網(wǎng)站品牌網(wǎng)站制作、云服務器、網(wǎng)站收錄、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務器托管