Tôi đã làm việc với mã java được cho là sử dụng mẫu Nhà máy, nhưng tôi không hoàn toàn bị thuyết phục bởi mẫu.Mẫu nhà máy trong java
Mã của tôi thực hiện điều này:
// the factory
class SomeFactoryImpl {
Set<SomeClass> getSomeListOfObjects();
}
Và ở đâu đó trong các mã:
{ ...
SomeFactory factory = new SomeFactoryImpl();
Set<SomeClass> list = factory.getSomeListOfObjects();
}
Điểm Tôi đang cân nhắc là, nếu lớp nhà máy không có một phương pháp tĩnh tạo() , sau đó, bạn cần phải khởi tạo một nhà máy, IMO sẽ phức tạp như việc tạo một đối tượng.
Tôi không xem xét lập luận rằng một nhà máy như vậy có thể trả về bộ sưu tập các đối tượng được tạo ra là đủ tốt. Tôi cảm thấy có thể có cách giải quyết rõ ràng hơn, nếu một trường hợp nhà máy cần phải được tạo ra trước khi thực sự tạo ra các đối tượng từ nhà máy.
Tôi cảm thấy tốt hơn nếu phương pháp tạo là phương pháp tĩnh của lớp nhà máy. Nhưng tôi cũng chắc chắn rằng ý kiến của tôi không hoàn toàn "đúng".
Vì vậy, cộng đồng SO có thể đưa ra các ví dụ khi tạo đối tượng Factory ngay lập tức tốt hơn sử dụng các phương thức tạo tĩnh không?
Ngoài ra, tôi đã trả lời câu hỏi tương tự, liệt kê các liên kết này và câu trả lời: vì vậy tôi cần biết rõ sự khác biệt giữa FactoryMethodPattern, FactoryMethod và CreationMethod với các ví dụ mã.
Đó là khá phổ biến trong Java API như TRAX có một phương pháp newInstance tĩnh() trên lớp nhà máy (ví dụ TransformerFactory.newInstance()), và sau đó bạn gọi hàm createTransformer() trên kết quả. – skaffman