Yêu cầu thg 11 2, 2020 3:36 SA 352 0 2
  • 352 0 2
+1

Tại sao cần tránh phụ thuộc vòng (Circular dependency)

Chia sẻ
  • 352 0 2

Chào mọi người. Em đang làm 1 bài tập lớn, trong quá trình code em có 1 class rất lớn hơn 1000 dòng tên là ServerController nên em muốn tách ra thêm 1 class là ServerManager để 1 class không quá lớn. Nhưng do 2 class này đều dùng thuộc tính của nhau nên em đang thiết kế là: class ServerController có chứa đối tượng ServerManager và ServerManager cũng chứa ServerController. Như thế gặp trường hợp Phụ thuộc vòng (Circular dependency). Mọi người cho em hỏi là thiết kế như vậy thì có gặp vấn đề gì không ạ? Em xin cảm ơn.

2 CÂU TRẢ LỜI


Đã trả lời thg 11 2, 2020 6:12 SA
+2

Việc tách thì theo mình nghĩ nó cũng phải có tác dụng chứ k chỉ tách vì nó dài được.

Ví dụ như mình code PHP và sử dụng Laravel thì sẽ có khái niệm là Repository Pattern. Lúc này thì repository sẽ đứng giữa là lớp trung gian giữa controller và DB. Lúc này thì khi truy vấn tới DB, thay vì viết trực tiếp ở controller thì mình sẽ tạo ra một repo và viết code xử lý trong đó. Sau đó thì sẽ inject vào constructor của controller.

Còn vào post của bạn thì có vẻ bạn code JAVA, vậy thì bạn có thể tìm hiểu về 1 vài design pattern của java xem sao: https://viblo.asia/p/tong-hop-mot-so-design-pattern-trong-java-qzaGzZWRGyO

Chia sẻ
Đã trả lời thg 11 3, 2020 8:51 SA
+1

Bạn tìm hiểu về nguyên tắc thiết kế hướng đối tượng SOLID nhé. Sau khi đọc xong thì tham khảo phương thức Refactoring là Extract Class: https://refactoring.guru/extract-class Nói về mấy cái này thì dài dòng lắm, nên bạn có thể tìm hiểu qua và xử lý được vấn đề luôn.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí