Theo mình từng trải qua là có 3 cách tổ chức:
- Class
- Feature
- Module
-Theo chủ topic là cách tổ chức theo class. Cách này minh bạch và mạch lạc, nhưng khi tái sử dụng code khó, phải duyệt qua rất nhiều nhóm Class để lấy ra 1 feature
-Cách của bạn @nguyenvanquan7826 suggest là cách tổ chức theo feature, cách này quản lí tốt hơn, vì feature được nhóm theo package riêng. Tuy nhiên thiếu sự mạch lạc của nhóm theo class.
-Cách thứ 3 là nhóm theo module, cách này mỗi feature tách thành 1 module, trong mỗi module file được tổ chức theo class. Nhìn sơ qua là nhóm theo feature, nhưng nhìn vào chi tiết là nhóm theo class. Cách này là cách các project lớn được tổ chức và hiện thực, mỗi team 1 module hoạt động độc lập, không ai được nắm hết source toàn bộ project.