Lâu nay web mình toàn post porn không 😀 Nên giờ tự tay viết 1 bài technical chút.
Về nguyên tắc / lý thuyết sách vở thì nó được gọi là … gì gì đó pattern ! Nhưng thôi dẹp mẹ nó sách vở qua 1 bên. Câu chuyện là ta xem nó giải quyết được bài toán gì & thế nào.
Service
Hiểu nó như trung tâm vũ trụ cũng được ! Cái gì rồi cũng phải đi qua em nó ( còn không đi qua mà tự đi đường tắt có gì thì tự chịu !!! )
Manager
Có thể hiểu như là thằng quản lý của Service ( ờ thì nó là Manager mà ). Mấu chốt là Service được implement vào Manager qua Interface. Vì sao uh
- 1 thằng Manager có thể xử lý các tác vụ giống nhau ( method ) nhưng được xử bởi các Service bên dưới khác nhau
Và đây cũng là nơi Interface thể hiện giá trị của nó
Có 1 vấn đề này mình còn khá consider ! Dispatch Event bên trong Service / Manager hay thông qua Observer
Case 1
- Khi model được created sau đó xử lý ABC gì đó nữa rồi mới thật sự cần dispatch EventAbcCreated thì nên trong Service / Manager
Ví dụ với XCrawler : Sau khi Movie được created còn thao tác sync Genres & Performers nữa . Do đó Event MovieCreated lúc này mình dispatch inside MovieService
Case 2
- Ngay khi model created là đã có thể xử dụng ngay Event. Thì mình vẫn khá là consider dispatch event trong Observer.created
Tuy nhiên theo một số quan điểm khác thì việc này … khó control và slow down test … uhm ! No idea yet !
Leave a Reply