Nếu tôi có đối tượng sao lưu biểu mẫu có cây đối tượng phức tạp - hãy nói một người có đối tượng Thông tin liên hệ có đối tượng Địa chỉ có một chuỗi các chuỗi - Có vẻ như đối tượng cần được điền đầy đủ với các đối tượng thành phần trước khi tôi có thể liên kết với nó. Vì vậy, nếu tôi đang tạo một Person mới, tôi cần đảm bảo rằng nó có tất cả các đối tượng thành phần được tạo ra từ dơi, và nếu tôi lấy một Person từ cơ sở dữ liệu, tôi cần đảm bảo rằng bất kỳ đối tượng nào không dân cư từ cơ sở dữ liệu nhận được dân cư với các đối tượng trống.Thực hành tốt nhất cho khởi tạo cây đối tượng mẫu Spring MVC
Câu hỏi đầu tiên, tất nhiên - tôi có đúng trong các giả định ở trên không? Có vẻ như nếu tôi cố gắng liên kết với person.contactInfo.homeAddress.street và không có ContactInfo, tôi nhận được một ngoại lệ con trỏ null.
Thứ hai, cách tốt nhất để khởi tạo đối tượng của tôi là gì. Tôi có thể nghĩ ra một vài cách tiếp cận. Một là khởi tạo tất cả các đối tượng thành viên khi khai báo:
public class Person {
String name;
ContactInfo contactInfo = new ContactInfo();
//getters, setters, etc.
}
public class ContactInfo {
String phone;
Address homeAddress = new Address();
}
v.v.
Cách tiếp cận khác là có một PersonFactory khởi tạo mọi thứ (hoặc để có phương thức Factory.getInstance khởi tạo mọi thứ).
Trong trường hợp truy xuất một người từ cơ sở dữ liệu, cách tiếp cận đầu tiên sẽ giải quyết vấn đề (tức là nếu người này không có địa chỉ trong cơ sở dữ liệu, đối tượng sẽ vẫn có địa chỉ), nhưng điều này sẽ có nghĩa là tạo ra từng đối tượng hai lần. Không chắc chắn làm thế nào để xử lý này nếu không, ngoại trừ để làm cho DAO rõ ràng cư trú tất cả mọi thứ ngay cả khi không có gì đã được lấy từ cơ sở dữ liệu. Hoặc để cung cấp cho nhà máy một phương pháp để đi qua đối tượng và "điền vào" bất cứ điều gì đó là mất tích.
Đề xuất?
Có cách nào cung cấp phương pháp nhà máy cho hạt sao lưu mẫu không? – Antoniossss