热门问题
时间线
聊天
视角
面向特性編程
来自维基百科,自由的百科全书
Remove ads
面向特性編程(@OP)是一種程序層面的標記技術。編程者可以給程序元素(例如類和方法)標記上特性(attribute),來指示它們包含特定於應用或特定於領域的語義。
簡介
特性將一個應用的核心邏輯(或業務邏輯)同特定於應用或特定於領域的語義(比如日誌和網頁服務功能)分離開來。
例如,一些編程者可以定義「logging」特性並把它關聯於一個方法,來指示這個方法應當實現一個日誌功能,而其他編程者可以定義一個「web service」特性並把它關聯於一個類,來指示這個類應當實現為一個網頁服務。通過在程序代碼中隱藏這些語義的實現細節,特性增加了編程抽象層次並減少了編程複雜性,導致了更簡單和更可讀的程序。
關聯了特性的程序元素由支持工具(比如預處理器)轉化成更詳細的程序。例如,一個預處理可以向關聯了「logging」特性的方法插入一個日誌程序。
各種語言中的面向特性編程
隨著J2SE 5.0發行包含了「Metadata Facility for Java」(JSR-175),可以即時採用面向特性編程,這項技術後來發展為Java註解。XDoclet庫使得更早版本的Java也可以採用面向特性編程。
C#語言從最早期發行就支持特性。但是這些特性被用於得到運行時間信息,而不被預處理器所使用(在C#參考實現中一個都沒有)。
統一建模語言(UML)支持叫作stereotype的一種特性。
Hack程式語言支持特性。特性可以附加到各種程序實體上,關於這些特性的信息可以通過反射來實時檢索。
工具
引用
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads