透過 EF 這個 ORM 的資料存取,我們常會看到使用 POCO 的範本來設計,那何謂 POCO 呢?它的全名為: Plain Old CLR Object ,中文我認為可翻成「簡單的資料物件」,故名思義就是這物件只定義屬性(property),而不去定義跟其它物件互動的方法(method)或是事件(event),使得開發人員可專注在商務邏輯的開發與脫離框架的單元測試,它的好處就是簡單且靈活度高,靈活度高意指的是它可擴展成多種用途,像是以下的這些情境:
- 當我們需要擴展成 Persistent Object (持久層物件,即可將物件的資訊或狀態記錄下來,儲存的方式有 Db、XML等)時,我們只要 Mapping 好資料庫與物件之間的定義並實現 CRUD 方法的接口即可使用。
- 為 POCO 增加商務邏輯的方法(Ex:驗證密碼、計算價格)之後,就成為 Domain Model。
- 當 POCO 含有資料綁定的功能,即為 View Data,可讓 UI 作為資料顯示的用途。
結論就是,POCO 相對於 ORM 而言,開發者可將 PO (Persistent Object ) 當作 POCO 來使用,而感覺不到 PO 的存在。
參考資料:
- 理解POCO
- [VS2010] ADO.NET Entity Framework 新功能:永續儲存無知物件 (Persistence-Ignorant Object) Overview
沒有留言:
張貼留言