2008-11-21 26 views
5

Một trong những đối tượng thuê của DDD không cho phép đối tượng của bạn nhập trạng thái không hợp lệ. Với tôi điều này có nghĩa là không nên có một constructor công khai parameterless bởi vì đó sẽ là một đối tượng trong một trạng thái không hợp lệ 99% thời gian.DDD + Các nhà xây dựng không có tham số công cộng - Chúng có tồn tại không?

Đây có phải là cách hay để tiến lên không? Nó trở thành một PITA khổng lồ khi bạn chỉ muốn làm mới một lớp học thật nhanh.

Trả lời

2

Câu hỏi hay. Tôi có những người bạn DDD nazi nói những nhà xây dựng không có tham số là ma quỷ. Tôi đồng ý với điều đó đến một mức độ nhất định, nhưng tôi cũng cảm thấy nó phụ thuộc vào mục đích của lớp.

2

Như Kilhoffer đã nêu, điều đó phụ thuộc vào những gì bạn đang cố gắng làm với lớp học. Trong trường hợp nào bạn muốn tạo một lớp học mà không thực sự khởi tạo các thuộc tính? Nếu bạn có các phương thức cá thể mà bạn muốn gọi, mà không yêu cầu bất kỳ dữ liệu nào, bạn có thể xem xét hoặc đánh dấu các phương thức đó là tĩnh hoặc di chuyển các phương thức đến một lớp riêng biệt. Cũng có thể lớp học của bạn có thêm một trạng thái hợp lệ - hoàn toàn trống.

Cá nhân, tôi tin vào mọi thứ ở mức độ vừa phải. Nếu yếu tố PITA cao và bạn chắc chắn rằng bạn sẽ không gặp phải vấn đề, thì có vẻ như các nhà thầu không có tham số sẽ ổn. Tại một số điểm tôi nghĩ rằng nó sẽ trở thành một vấn đề của ý kiến.

0

Tất cả phụ thuộc vào người gọi hàm tạo. Nếu chỉ có các nhà máy của bạn làm, thì thực sự không có vấn đề gì, bởi vì các phương thức nhà máy của bạn trở thành các nhà xây dựng "bên miền" và các nhà xây dựng thực sự là một chi tiết thực hiện.

Các vấn đề liên quan