[發明專利]用于實例化抽象類的系統和方法有效
| 申請號: | 200710181656.8 | 申請日: | 2007-10-22 |
| 公開(公告)號: | CN101169718A | 公開(公告)日: | 2008-04-30 |
| 發明(設計)人: | 羅伯特·R.·彼得森;杰弗里·M.·哈姆布里克;羅蘭·巴斯亞;庫維爾·S.·布霍加爾 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 中國國際貿易促進委員會專利商標事務所 | 代理人: | 付建軍 |
| 地址: | 美國*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 實例 抽象 系統 方法 | ||
技術領域
本申請一般涉及改進的數據處理系統和方法。具體來說,本申請涉及用于實例化應用程序代碼中的接口或抽象類的系統和方法。
背景技術
在面向對象的編程中,使用類來對相關變量和函數進行分組。類描述了封裝的實例變量和方法(函數)的集合,可能具有那些類型的實現方式以及可以用來創建該類的對象的構造函數。
類是包括特定類型的編譯時元數據的內聚數據包。類描述了對象,即,類的實例,應該遵循的規則。類指定了類的每一個實例(即,對象)包含的數據的結構以及操縱對象的數據以及執行任務的方法。方法是具有特殊屬性的函數,它可以訪問存儲在對象中的數據。
類的實例,即,對象,將共同地具有某些方面,即,特征、屬性。利用類進行編程的其中一個優點是,某一個特定類的所有實例都將遵循它們實例化的類的所定義的行為。
類可以“實現”多個接口,每一個接口都指定必須在該類中定義的一個或多個抽象方法簽名(方法的名稱和類型以及其參數)。與繼承實際代碼(以及命名和邏輯沖突)的多繼承不同,接口允許定義實現了接口的所有類應該能夠滿足的行為接口(方法)。
接口一種類型的抽象類。抽象類,或抽象基類(ABC),是被設計只作為父類而且可以從中導出子類,并且其本身不適合于實例化的類。另一方面,具體類,是可以為其創建實例(即,對象)的類。抽象類常常用于代表抽象概念或實體。然后,抽象類的不完整的特征由一組添加了遺漏片段(missing?piece)的不同變化的同輩子類來共享。
當設計應用程序的架構并開發應用程序時,接口和抽象類允許分離顧慮和互操作性。當生成這樣的應用程序時,必須在具體類中實現接口和抽象類。接口和抽象類的這樣的實現要求在具體類中進行接口或抽象類實現的“硬編碼”。結果,如果接口或抽象類實現將要被替換,則需要進行源代碼更新和重新編譯。
請看下列示例,提供了AudioDevice接口,并提供了實現AudioDevice接口的兩個具體類“Radio”和“MP3Player”:
public?interface?AudioDevice{
public?void?play()throws?playbackException;
public?void?stop()throws?discontinuationException;
}
public?class?Radio?implements?AudioDevice{
public?void?play()throws?playbackException{...}
public?void?stop?()?throws?discontinuationException{...}
}
public?class?MP3Player?implements?AudioDevice{
public?void?play()throws?playbackException{...}
public?void?stop()throws?discontinuationException{...}
public?void?shuf?f?le(){...}
再請看下列應用程序源代碼的片斷:
[36]AudioDevice?myStereo=new?MP3Player();
[37]myStereo.play();
…
[52]myStereo.stop();
…
如示例所示,對AudioDevice接口的實例化要求在實現該接口的具體類的應用程序源代碼中說明。結果,如果程序員以后希望切換到AudioDevice接口的替代的實現方式,程序員必須修改應用程序源代碼本身,才能更改接口的具體類實現方式。例如,如果將使用新的MP3?PDA組合設備,則必須提供MP3?PDA組合設備的新的具體類,必須按如下方式修改應用程序源代碼,以使用新的MP3PDA具體類來實現AudioDevice接口:
[36]AudioDevice?myStereo=new?MP3PDA();
甚至只是單個應用程序源代碼的更改,如上面的例子,仍要求新開發應用程序源代碼并重新編譯應用程序源代碼。這樣的開發和重新編譯需要花費時間、精力以及資源才能實現。考慮到可能有成千上萬行應用程序源代碼的現代的應用程序,這會更加麻煩。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710181656.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:生產總蛋白質含量高的基于大豆和乳蛋白的制品的方法
- 下一篇:苯乙烯的制造方法





