IOS 設計模式
IOS開發中幾種設計模式:單例模式、觀察者模式、MVC模式、代理模式
一、單例模式
場景:確保程式執行期某個類,只有一份例項,用於進行資源共享控制。
優勢:使用簡單,延時求值,易於跨模組
敏捷原則:單一職責原則
例項:[UIApplication sharedApplication]。
注意事項:確保使用者只能通過 getInstance方法才能獲得,單例類的唯一例項。
java,C++中使其沒有公有建構函式,私有化並覆蓋其建構函式。
object c中,重寫allocWithZone方法,保證即使使用者用 alloc方法直接建立單例類的例項,
返回的也只是此單例類的唯一靜態變數。
二、觀察者模式
場景:一般為model層對,controller和view進行的通知方式,不關心誰去接收,只負責釋出資訊。
優勢:解耦合
敏捷原則:介面隔離原則,開放-封閉原則
例項:Notification通知中心,註冊通知中心,任何位置可以傳送訊息,註冊觀察者的物件可以接收。
kvo,鍵值對改變通知的觀察者,平時基本沒用過。
三、MVC
場景:是一中非常古老的設計模式,通過資料模型,控制器邏輯,檢視展示將應用程式進行邏輯劃分。
優勢:使系統,層次清晰,職責分明,易於維護
敏捷原則:對擴充套件開放-對修改封閉
例項:model-即資料模型,view-檢視展示,controller進行UI展現和資料互動的邏輯控制。
四、代理模式
場景:當一個類的某些功能需要由別的類來實現,但是又不確定具體會是哪個類實現。
優勢:解耦合
敏捷原則:開放-封閉原則
例項:tableview的 資料來源delegate,通過和protocol的配合,完成委託訴求。
列表row個數delegate
自定義的delegate
一句話總結:傳入物件實現物件的功能
iOS開發之網路程式設計:常用網路協議
一、網路協議
國際標準化組織(ISO)定義了網路協議的基本框架,被稱為OSI模型。要制定通訊規則,內容會很多,比如要考慮A電腦如何找到B電腦,A電腦在傳送資訊 給B電腦時是否需要B電腦進行反饋,A電腦傳送給B電腦的資料的格式又是怎樣的?內容太多太雜,所以OSI模型將這些通訊標準進行層次劃分,每一層次解決 一個類別的問題,這樣就使得標準的制定沒那麼複雜。OSI模型制定的七層標準模型,分別是:應用層,表示層,會話層,傳輸層,網路層,資料鏈路層,物理層。
二、HTTP協議
HTTP是一個屬於應用層的物件導向的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統,全稱是Hypertext Transfer Protocol(超文字傳輸協議),而且它是屬於上面的層次模型的應用層。
從NSURLConnection到NSURLSession再到AFNetworking,它們的網路傳輸都採用的是HTTP協議
請求方法。其實請求並不單單隻有Get、Post這兩種。一共有:GET、POST、OPTIONS、HEAD、PUT、DELETE、TRACE、CONNECT、PATCH八種之多。而最常用的是Get、Post,我也沒看到過有其他的請求方法的使用。
三、HTTPS協議
HTTPS(全稱:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
超文字傳輸協議HTTP協議被用於在Web瀏覽器和網站伺服器之間傳遞資訊。HTTP協議以明文方式傳送內容,不提供任何方式的資料加密,如果攻擊者擷取了Web瀏覽器和網站伺服器之間的傳輸報文,就可以直接讀懂其中的資訊,因此HTTP協議不適合傳輸一些敏感資訊,比如信用卡號、密碼等。
為了解決HTTP協議的這一缺陷,需要使用另一種協議:安全套接字層超文字傳輸協議HTTPS。為了資料傳輸的安全,HTTPS在HTTP的基礎上加入了SSL協議,SSL依靠證照來驗證伺服器的身份,併為瀏覽器和伺服器之間的通訊加密。
TTPS和HTTP的區別主要為以下四點:
https協議需要到ca申請證照,一般免費證照很少,需要交費。
http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議。
http和https使用的是完全不同的連線方式,用的埠也不一樣,前者是80,後者是443。
http的連線很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網路協議,比http協議安全。
四、TCP/IP協議
iOS開發中,TCP/IP一般會和Socket牽扯到一起。Socket是基於TCP/IP協議的封裝,主要是用於資料傳輸,即時通訊這一塊。單純的TCP/IP,在網路層次模型中,TCP和IP是兩個協議,TCP是運用的資料鏈路層的一個協議,用於將資訊傳送到更高一層的網路層,而IP協議就是為網路層服務的。
相關文章
- iOS設計模式——CategoryiOS設計模式Go
- iOS設計模式 (四)享元模式iOS設計模式
- iOS設計模式之觀察者模式iOS設計模式
- iOS 設計模式之單例模式iOS設計模式單例
- 玩轉 iOS 開發:《iOS 設計模式 — 代理模式》iOS設計模式
- iOS設計模式詳解iOS設計模式
- iOS設計模式彙總iOS設計模式
- iOS 設計模式知多少iOS設計模式
- IOS設計模式第三篇之外觀設計模式iOS設計模式
- 玩轉 iOS 開發:《iOS 設計模式 — 工廠模式》iOS設計模式
- [譯] iOS 設計模式進階iOS設計模式
- iOS 設計模式_觀察者_KVOiOS設計模式
- iOS設計模式-介面卡iOS設計模式
- iOS 設計模式淺析 0 – 前言iOS設計模式
- iOS 設計模式淺析 1 - 策略iOS設計模式
- iOS 設計模式淺析 0 - 前言iOS設計模式
- iOS中的單例設計模式iOS單例設計模式
- iOS設計模式 - 簡單工廠iOS設計模式
- iOS_設計模式學習:介面卡模式iOS設計模式
- iOS設計模式2 - 觀察者模式_通知機制iOS設計模式
- iOS設計模式之四:備忘錄模式和命令模式iOS設計模式
- 【iOS印象】漫談 iOS App 架構與設計模式iOSAPP架構設計模式
- iOS 設計模式淺析 2 - 橋接iOS設計模式橋接
- iOS 開發中常見的設計模式iOS設計模式
- iOS設計模式反思之單例模式的進化iOS設計模式單例
- iOS設計模式之三:介面卡模式和觀察者模式iOS設計模式
- iOS設計模式之二:外觀模式和裝飾器模式iOS設計模式
- iOS開發中的21種設計模式iOS設計模式
- iOS開發中的設計模式 - 委託iOS設計模式
- 設計模式----工廠設計模式設計模式
- 設計模式-工廠設計模式設計模式
- Java設計模式——模板設計模式Java設計模式
- 設計模式---外觀設計模式設計模式
- [設計模式]單例設計模式設計模式單例
- 設計模式-裝飾設計模式設計模式
- 設計模式之單例設計模式設計模式單例
- 設計模式(四)Singleton設計模式設計模式
- PHP設計模式—建立型設計模式PHP設計模式