Type class內宣告instance variables跟其accessors

Provider class內放資料的CRUD oprations,傳入參數而非透過O/R mapping來操作的話,這些oprations應該宣告成static,也就是class method。

舉例來說,假設有兩個物件,作者跟書 Authors (id, name, gender) // 編號,姓名,性別 Books (id, author_id, title, subtitle, published_at) //編號,作者FK,標題,副標題,出版日

要更新書籍時,透過Books的provider進行以下動作:

…BooksService.Make().Update(modified_row);

或 beyound_java.Update(modified_row) // beyound_java是一個books物件 都是不好的,

前者不符合LoD,只跟親近的朋友溝通,或稱最少知識原則。 後者有可能產生不make sense的狀況,看看下列的語法

beyound_java.Update(3, 4, “better faster and lighter java”, null, null) // beyound_java是一個books物件

竟然由beyound java這本書去更新另一本書的資料,這很詭異,正常的作法應該是所謂「上系統」去修改資料,所以我目前認為這些oprations宣告成class method會比較合理一點。

至於service,其實可以不必存在,將為了跟控制項溝通的語法寫在provider裡面的各個method前即可。