Ta sẽ mô tả kỹ cho trƣờng hợp nhóm lớp này , các nhóm lớp khác là tƣơ ng tƣ̣ về mă ̣t logic tổ chƣ́c.
- AvatarView : quyết định giao diê ̣n hiển thi ̣. Ở đây giao diện sẽ bao gồm một ảnh (avatar) mô ̣t đƣờng link đến giao diê ̣n thay đổi thông tin cá nhân và mô ̣t nút để đăng xuất . View này không biết thông tin ma nó hiển thi ̣ là gì và nó cài đặt lớp Display của lớp AvatarPresenter .
- AvatarPresenter : quyết đinh thô ng tin hiển thị và các sƣ̣ kiê ̣n khi nhấn vào các đƣờng link. Ở đây nó lấy thông tin (UserProfile) của ngƣời dùng đã đăng nhâ ̣p vào hê ̣ thống và dùng mô ̣t đối tƣợng cài đă ̣t interface Display của nó để hiển thi ̣. Đồng thời nó c ũng xác định phải làm gì khi ngƣơi dùng nhấn vào các nút trên giao diện . Nó lấy đối tƣơng UserProfile thông qua lời gọi không đồng bô ̣ của lớp UserProfileServiceAsync nhƣ đã mô tả ở phần GWT RPC . - UserProfile : đóng vai trò Model trong ô hình MVP , nó là thực thể lƣu trữ
thông tin về ngƣời dùng. Khi sƣ̉ du ̣ng JDO, ta sẽ lƣu trƣ̃ trƣ̣c tiếp
- UserProfileService, UserProfileServiceAsync, UserServiceProfileImpl : ba lớp/interface cần thiết để go ̣i các phƣơng thƣ́c theo mô hình RPC.
Nhƣ vâ ̣y với mô ̣t giao diê ̣n ta có thể có 7 file java. Tuy nhiên không phải lúc nào cũng sinh ra file dịch vụ mới , ta có thể nhóm các chƣ́c năng di ̣ch vu ̣ xƣ̉ lý cùng mô ̣t loại thực thể model vào làm một dịch vụ.
Sinh viên thực hiê ̣n : Đào Phan Quang K50 Lớp CNPM 58
Sinh viên thực hiê ̣n : Đào Phan Quang K50 Lớp CNPM 59
Hình 16. Gói client gồm các interface di ̣ch vu ̣ (2)
Chú ý là trong gói này ta thấy có hai lớp là Eel và AppController. AppController nhƣ đã mô tả ở trong mô hình MVP là lớp quyết đi ̣nh viê ̣c xƣ̉ lý logic ở mƣ́c ƣ́ng dụng. Ở đây ta sẽ cài đặt nó để điều khiển việc thay đổi giao diện của ứng dụng tùy vào dấu hiệu của History . Lớp Eel kế thƣ̀a lớp EntryPoint là đ iểm khởi đầu của ƣ́ng dụng GWT tƣơng tự nhƣ hàm main.
Sinh viên thực hiê ̣n : Đào Phan Quang K50 Lớp CNPM 60