Eva
Java粉絲募集中
  • 簡介
  • 我們的優勢
  • 最新消息
  • 下載與使用
  • 範例與說明
    • Eva Objects >
      • Bean類別定義
      • Entity型別定義
      • Struct型別定義
      • 建立Entity空白物件
      • 建立Entity修改物件
      • 建立Entity條件物件
      • 建立Struct值物件
    • Eva_ORM >
      • ORM程式主體
      • 使用條件物件執行操作
      • 執行更複雜條件的操作.
      • 分頁取回資料
      • 操作JDBC的參數
      • Array Property的操作
      • Collection Property的操作
      • 更複雜的Collection Property
      • 指定表格名稱
      • 新增資料庫Dialect
    • Eva_IOC >
      • IOC程式主體
      • AOP應用
    • Eva_Struct >
      • Struct範例
      • Bit Strcut範例
      • 指標範例
      • 於Eva_ORM中使用
    • Eva_Sort >
      • 依指定Properties排序
      • 部份排序
      • 優先排序部份
    • Eva_Cache >
      • hashing-based cache
      • 非hashing-based cache
  • API列表
  • 技術支援
    • 協助開發
  • 相關書籍

IOC 是什麼?

所謂的Inversion Of Control(IOC), 指的是讓可能變動的程式流程或細節, 不寫死在程式之中, 而是在程式佈署(deploy)之後仍可動態地調整. 而在程式流程或細節都能被管理的情況下, 還可以進一步使用Aspect Oriented Programming(AOP)的概念去面向地(Aspect) 增加程式功能, 或是監控程式的運行.

建立與使用 Eva_IOC 應用程式.

Eva_IOC, 是以動態編譯完成IOC的功能, 它的使用流程如下 :
  1.     在Java環境中, 透過工具所提供的AbstractFactory方法取得物件的建立工具, 用它建立自訂的物件.
  2.     但在程式被執行前, Eva_IOC會先搜尋設定環境中是否存在替換該物件的設定檔, 若有, 則動態編譯該設定檔, 改傳回替換的物件, 若無, 則傳回原先指定的物件.

設定檔的搜尋.

Eva_IOC的設定檔, 即是一個Java程式碼檔, 只是為了區別, 其副檔名不強迫以 .java結尾. 而設定檔所容許的副檔名有哪些, 與該到執行目錄底下的哪個目錄搜尋, 都可以透過建立一個ResourceSetting物件自訂. 然後使用ObjectFactory內的setResource方法來設定. 預設的ResourceSetting物件裡, 內定會搜尋的設定檔副檔名為 :
  1.     無副檔名,
  2.     ".java", ".conf" , ".config" , ".setting", ".eva".  
而內定會去那搜尋設定檔的目錄為 :
  1.     當前的程式執行目錄
  2.     "setting", "conf", "config", "eva".

若以Java中的Integer類別為例, 則
  • .\eva\java.lang.Integer.eva
  • .\setting\java.lang.Integer.java
  • .\eva\java\lang\Integer.setting
都是它設定檔的可能存放地點, 不過Integer類別不能真的被取代, 因為一個類別若要能被取代, 它必須為可繼承的, 或是以介面的方式被使用.

Eva_IOC 的優勢.

  1. 程式碼短, 設定檔小.
  2. 支援Java全部的功能.
  3. 可用compiler檢查設定是否正確, IDE的支援完整
  4. 可以只用Java的IDE重頭寫到尾了.
  5. 足以勝任關鍵任務的執行效率.
  6. 不必因為加入IOC特色, 而改變原本程式的寫法或架構, 唯一需要做的只是透過Eva_IOC去建立物件.

Eva_IOC 帶來的改變.

因為透由 Eva_IOC 即可將設定檔與程式本身直接做銜接, 並且一併帶來程式的擴充能力. 所以使用者更需要關注Java語言本身, .與Java SE功能本身, 這些絕不輕易改變的基礎知識, 是使用者所期望的設定檔中, 創意與設計的直接實踐工具.
Powered by Create your own unique website with customizable templates.