約定優於配置

約定優於配置(convention over configuration),也稱作按約定編程,是一種軟體設計範式,旨在減少軟體開發人員需做決定的數量,獲得簡單的好處,而又不失靈活性。

基本介紹

  • 中文名:約定優於配置
  • 外文名:convention over configuration
  • 又稱:按約定編程
  • 性質:一種軟體設計範式
簡介,動機,使用,Java註解,

簡介

本質是說,開發人員僅需規定套用中不符約定的部分。例如,如果模型中有個名為Sale的類,那么資料庫中對應的表就會默認命名為sales。只有在偏離這一約定時,例如將該表命名為"products_sold",才需寫有關這個名字的配置。
如果您所用工具的約定與你的期待相符,便可省去配置;反之,你可以配置來達到你所期待的方式。

動機

設計不好的框架通常需要多個配置檔案,每一個都有許多設定。這些配置檔案為每一個項目提供信息說明從URL到將類映射到資料庫表的各種信息。大量包含太多參數的配置檔案通常是過度複雜的套用設計的指標(代碼壞味道)
例如,在知名的Java對象關係映射框架Hibernate的早期版本中,將類及其屬性映射到資料庫上需要是在XML檔案中的描述,其中大部分信息都應能夠按照約定得到,如將類映射到同名的資料庫表,將屬性分別映射到表上的欄位。後續的版本拋棄了XML配置檔案,而是使用這些恰當的約定,對於不符合這些約定的情形,可以使用Java 標註來說明(參見下面提供的JavaBeans規範)。

使用

許多新的框架使用了約定優於配置的方法,包括:SpringRuby on Rails,Kohana PHP,Grails,Grok,Zend FrameworkCakePHPsymfonyMavenASP.NET MVCWeb2py(MVC),Apache Wicket
這是一個古老的概念, 甚至在Java類庫中也可以找出這一概念的蹤跡。例如,JavaBean規範非常多的依賴這一概念。下面摘錄JavaBeans 1.1版規範的一段:
按照一般的規則,我們不希望造出一個奇怪的java.beans.everything類,其他類需要從該類派生。而是希望在運行時JavaBeans為一般的對象提供預設的行為特徵,但是允許對象通過繼承特定的java.beans.something接口來覆蓋預設的行為特徵的一部分。

Java註解

Java註解又稱Java標註,是Java語言5.0版本開始支持加入原始碼的特殊語法元數據
Java語言中的類、方法、變數、參數和包等都可以被標註。和Javadoc不同,Java標註可以通過反射獲取標註內容。在編譯器生成類檔案時,標註可以被嵌入到位元組碼中。Java虛擬機可以保留標註內容,在運行時可以獲取到標註內容。 當然它也支持自定義Java標註。

相關詞條

熱門詞條

聯絡我們