Một cách tiếp cận khác không phản chiếu là sử dụng mô hình Hybrid Builder/Abstract Factory.
Trong Java hiệu quả, Joshua Bloch đi qua mô hình Builder trong từng chi tiết, và chủ trương một giao diện Builder generic:
public interface Builder<T> {
public T build();
}
xây dựng bê tông có thể thực hiện giao diện này, và các lớp bên ngoài có thể sử dụng xây dựng cụ thể để cấu hình Builder theo yêu cầu. Người xây dựng có thể được chuyển đến MyClass dưới dạng Builder<T>
.
Sử dụng mẫu này, bạn có thể nhận các phiên bản mới T
, ngay cả khi T
có thông số hàm tạo hoặc yêu cầu cấu hình bổ sung. Tất nhiên, bạn sẽ cần một số cách để chuyển Builder vào MyClass. Nếu bạn không thể chuyển bất kỳ thứ gì vào MyClass, thì Trình xây dựng và Nhà máy Tóm tắt sẽ hết.
Nguồn
2008-11-19 22:05:01
gói gì 'Supplier' tọa lạc tại? 'MyClass (Lớp extends T> impl)' phải khai báo 'ném NoSuchMethodException' để được biên dịch. Câu trả lời của bạn không may là không thân thiện với người mới bắt đầu Java. – user927387
@ user927387 'java.util.function.Supplier' – erickson