Re: [問題] MVC程式架構
※ 引述《cyclone350 (老子我最神)》之銘言:
[43]
: 問題來了,我待過的每一個Web專案理,都會在Action 跟 Dao 中間夾帶一層 Service
: 或是 manager...
: 而規定幾乎是 "一個Action對應一個manager"
: 而 manager 所做的事,就像是把Action 的 private method 移到 manager 變成
: public method ...
: 我完全找不到理由可以說明為啥要特地開一個 manager, manager的工作事項模糊不清
: 一個寫在 manager 的 public method 完全可以改到自身
: Action class 的 private method
: 而實際情況是,在寫method時,有些程式設計師會寫到 Action ,有些會寫到 Manager
: 這完全沒有意義,假設有 10 個 method,兩位程式設計師可能寫完全不一樣
: 例如
: 程式設計師A: 1,2,4,5,6 寫到 Action, 3,7,8,9,10寫到 Manager
: 程式設計師B: 2,6,7,5,8,10 寫到Action, 1,3,4,9寫到 Manager
: 我所遇到的專案就是如此,有沒有人能夠解釋 Service 或 Manager 的必要,以及它們
: 真正存在的意義在哪裡?
: 苦惱很久了
: 謝謝大家看完
先說一下,我個人是沒啥 Web app 開發經驗的,
以前做的 project 都只是 server side 的 application,
讓 Rich client 經各類 protocol 連進來 (CORBA/SOAP/RestFul WS etc).
不過就算這類 application,還是常會看到你所說的問題。我自己對那
些模糊不清的 XXXManager/ XXXService 也是很感冒。
我自己的手段是稍為不一樣。
詳細有點難解說,建議你去找一下 Domain Driven Design 的資料。
簡單來說,在 DDD 的世界,business logic 主要就存在於 Domain Layer
(通常來說就是 Entity),和平常你所見的單純只當 Data object 的
Domain Entity (即是所謂 Anemic Model) 很不一樣。
雖然在 DDD 中還是會常見所謂 Service,但一般來說只是 Application
Service,絕大部份的 business logic 還是會放在 Domain Layer。
當然,DDD 並不是所有類型的 application 都合用(比如主要是各類
Report 的 app 就不太合用了),不過還是建議你去看看,當是學習另
一種思維也好。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.19.45.228
推
09/02 12:56, , 1F
09/02 12:56, 1F
→
09/02 16:31, , 2F
09/02 16:31, 2F
→
09/02 21:10, , 3F
09/02 21:10, 3F
→
09/02 21:11, , 4F
09/02 21:11, 4F
→
09/03 11:43, , 5F
09/03 11:43, 5F
→
09/03 23:26, , 6F
09/03 23:26, 6F
→
09/03 23:27, , 7F
09/03 23:27, 7F
討論串 (同標題文章)