ASP.NET C# ADO.NET的Type, Provider, Service的做法與觀念(目前還處於我猜測的階段)

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前即可。

留言

這個網誌中的熱門文章

神之雫 的 雫 (雨下) 怎麼唸、意思是什麼

[已解決] 入肉 (肏) 的注音/怎麼唸?意思是什麼?(兒童不宜)

哆啦A夢放上任何東西都無違和感、彷彿有音效的滑鼠墊 這裡買得到