Package 的命名原則
Posted by Bruce Tsai
一般性原則
- package 名稱全為小寫
- 通常以公司或團體做前綴
- 不同功能以不同的 package 來切割、歸類
- 通常 package 會包含了以下項目
- 公司或團體名稱
- 系統名稱
- 模組名稱
- 功能名稱
- 功能分類項目
公司名稱
假定公司名稱為 Foo,一般而言 package 會以 com.foo 開頭
package com.foo.core.common;
系統名稱
而在公司名稱後,會接著所建置的系統類型
// CRM 核心共用元件類
package com.foo.crm.core.common;
// CRM 系統/網頁系統/訂單功能/MVC 架構下的控制器
package com.foo.crm.web.order.controller;
模組名稱
如在同一個系統下,有多個不同類型模組,可再系統名稱下進行切割
// CRM 系統/網頁系統/入口網站/訂單功能/MVC 架構下的控制器
package com.foo.crm.web.portal.order.controller;
// CRM 系統/網頁系統/行動網站/訂單功能/MVC 架構下的控制器
package com.foo.crm.web.mobile.order.controller;
// CRM 系統/排程作業
package com.foo.crm.task.executable;
功能名稱
功能在分類上較無一定方式,主要原則是將同一類型的類別進行分類,可用類別的性質分類,也可用類別所屬功能分類,但不建議同一個 package 下有過多的類別存在。
// 網頁系統的 MVC 控制器
package com.foo.crm.web.portal.order.controller;
// 網頁系統的商業邏輯功能
package com.foo.crm.web.portal.order.facade;
// 網頁系統的 ViewModel Bean
package com.foo.crm.web.portal.order.bean;