设计视图
? ?這OpenSl ?EsAPI接受使用C編程語言的面向?qū)ο蟮姆椒ā_@個API包括兩部分基本內(nèi)容,一個對象和一個接口。
? ?一個對象是一些資源的抽象或配任務(wù)的的抽象。和C++的類相識;
? 一個接口是一個對象能夠提供的相關(guān)特性的抽象。一個接口包含了一套方法,,那是接口的函數(shù)。一個接口有一個類型正確的指定了一套接口的函數(shù)。我們能夠定義接口本身作為它的類型和對象的結(jié)合。
?一個接口Id,定義了一個接口的類型。這個定義被用來在源代碼中來參照接口的類型。
? 一個對象的維護(hù)一個狀態(tài)機(jī)帶有如下的狀態(tài):
? ?初始化的狀態(tài):這個對象是活著的,但是沒有分配資源。它不是穩(wěn)定的;它的接口的方法沒有被調(diào)用。
? ?實現(xiàn)狀態(tài):對象的資源被分配和對象是可以使用的。
? ?延遲的狀態(tài):這個對象有較少的資源比著它需要的,為了能夠被使用。
? ?Getter和Setter
一個應(yīng)用程序使用一個setter方法來改變一個對象的值和一個getter來獲得一個對象的值。
? ?使用代碼陳述
?OpenSL Es通過它的SLObjectItf接口來引用一個對像。
? 這個API使用C的結(jié)構(gòu),所有的域都是方法的函數(shù)指針,代表的方法。這些接口的結(jié)構(gòu)體被存儲和傳遞作為pointer-to-pointer-to-struct和從不通過值。
每個接口函數(shù)都有一個參數(shù)叫做self,它的類型是接口類型。因此,當(dāng)調(diào)用一個接口函數(shù),這個調(diào)用必須傳遞接口指針在這個參數(shù)。每個回調(diào)類型都有一個產(chǎn)生叫做caller,是一個接口類型。
?
總結(jié)