Configuration Pattern : 配置模式

來源:互聯網
上載者:User

IoC? Dependency Injection? No, Configuration Pattern!

IoC 這個過於tricky的名字理所當然的引起困惑, Martin同學取了個自以為高明的"Dependency Injection", 實在是半斤八兩, 五十步笑百步, 其實更大範圍上, 它們都是"Configuration Pattern"的一種實現. (Configuration Pattern, 配置模式, 我起的名字, 自娛自樂, 如有雷同, 所見略同)

Engine + Configuration.

搜一下你的項目, 或者常用的開源項目, 如果能同時搜到"Engine"結尾的類和"Configuration"結尾的類, 那麼這個項目很可能用到了"Configuration Pattern"

我用過的開源項目中, Apache Axis就使用了引擎+配置的模式

我做過的一個工作流程項目中, 也使用了引擎+配置的模式

當然, 傳統的讀取配置和 Dependency Injection 還是不太一樣的; 前者通常會有一些 getAbc( )之類的方法, 類似IoC中 getObject(objectId), getBean(beanId)之類的調用, 但Dependency Injection 更靈活的做法是通過Setter或Ctor直接注入, 你就不需要自己去調用 getter 方法了. 前者主要是配置一些簡單屬性,後者通常將配置擴充到對象

Algorithm + Functor

其實更大範圍上,  Engine + Configuration 的模式, 也是 Algorithm + Functor 模式的一種應用; 冒泡排序的演算法是一樣的, 結果只取決於你提供的比較函數; 你提供了比較年齡和比較姓名兩個不同的Functor, 那麼作用在冒泡排序這同一個Algorithm上, 就能得到兩種結果.

參數化

其實最大範圍上, 不就是參數嗎? IoC, Dependency Injection, Configuration, Functor, 不就是"參數"這種思想的應用嗎. (這就多餘了, 沒意思了)

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.