根據(jù)運行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等。 許多iOS開發(fā)人員了解類,對象,繼承,多態(tài)性和接口的面向?qū)ο蟮母拍? 但是類繼承和接口繼承(子類型化)之間有什么區(qū)別?接口定義類型,接口繼承(子類型化)使我們可以將一個對象替換為另一個. 另一方面,類繼承是通過重用父類的功能或簡單地共享代碼和表達式來定義對象的實現(xiàn)和類型的機制. 類繼承使我們可以從現(xiàn)成的類中繼承所需的大多數(shù)功能,以快速定義新的類. 實際上,類和類型是非常緊密相關(guān)的. 但是,不同之處在于,一個對象可以具有多種類型,而同一類型的對象可以具有同一類型. 定義具有相同接口的組很重要,因為多態(tài)性是基于接口的. 其他面向?qū)ο蟮木幊陶Z言(例如Java)允許iOS開發(fā)人員定義“接口”(與類不同)類型,該類型確定客戶端與所使用的特定類之間的“合同”. 在Objective-C中有一個類似的東西叫做協(xié)議(protoc01). 協(xié)議也是對象之間的契約,但是它本身不能被實例化為對象. 實現(xiàn)協(xié)議或從抽象類繼承,以便對象共享相同的接口. 因此,該子類型的所有對象都可以響應(yīng)對協(xié)議或抽象類接口的請求. 這有以下兩個好處: 1. 對象接口符合. 只要對象符合客戶端所需的接口,客戶端就不必關(guān)心所使用對象的確切類型. 2. 客戶端僅知道定義接口的協(xié)議或抽象類,因此客戶端對對象的類一無所知. 這就引出了GoF可重用的面向?qū)ο筌浖O(shè)計的原則: 用于接口編程,而不是用于實現(xiàn)編程. 通常的做法是不在客戶端代碼中聲明特定具體類的變量,而僅使用協(xié)議或抽象類定義的接口. 設(shè)計模式肯定會在許多方面影響系統(tǒng)設(shè)計. 但是有些設(shè)計原則也會影響設(shè)計. 一些原則用于通用軟件設(shè)計,而某些原則則用于Objective-c和cocoa Touch. 上述文章針對接口編程針對接口編程,而不是編程. 如果您想進一步了解iOS開發(fā)知識針對接口編程,請在整個站點上單擊“丁學(xué)堂iOS開發(fā)教程”免費視頻講座. 歡迎您的參與.
|
溫馨提示:喜歡本站的話,請收藏一下本站!