Khi mô hình hóa các lớp học, cách ưa thích của khởi tạo là gì:Constructors vs Phương pháp Factory
- Constructors, hoặc phương pháp
- Factory
Và điều gì sẽ cân nhắc cho việc sử dụng một trong hai trong số họ ?
Trong một số trường hợp nhất định, tôi muốn có phương thức factory trả về null nếu đối tượng không thể được xây dựng. Điều này làm cho mã gọn gàng. Tôi chỉ có thể kiểm tra xem giá trị trả về có phải là không null trước khi thực hiện hành động thay thế hay không, trái ngược với việc ném một ngoại lệ từ hàm tạo. (Cá nhân tôi không thích ngoại lệ)
Giả sử, tôi có một hàm tạo trên một lớp có giá trị id. Hàm tạo sử dụng giá trị này để điền vào lớp từ cơ sở dữ liệu. Trong trường hợp một bản ghi với id được chỉ định không tồn tại, hàm tạo ném ra một RecordNotFoundException. Trong trường hợp này, tôi sẽ phải kèm theo việc xây dựng tất cả các lớp như vậy trong một khối try..catch.
Ngược lại với điều này, tôi có thể có một phương pháp nhà máy tĩnh trên các lớp đó sẽ trả về null nếu không tìm thấy bản ghi.
Phương pháp nào tốt hơn trong trường hợp này, phương thức khởi tạo hoặc phương thức nhà máy?
Phương thức factory tĩnh khác với kiểu thiết kế GoF - Pattern Method Factory. http://stackoverflow.com/questions/929021/what-are-static-factory-methods-in-java –
Vui lòng không so sánh với mẫu phương thức Nhà máy của các mẫu thiết kế GoF. –
điều này giải thích cho tôi không có gì – Sushant