Gần đây tôi bắt gặp một mô hình xây dựng hấp dẫn tôi.Logic bên trong BuilderPattern
Vì vậy, tôi có một số EntityBuilder
tạo mã số Entity
nhưng không trả lại đối tượng. Dưới đây là phương pháp chữ ký:
public void build();
Thay vào đó, bên trong phương pháp build()
, nó cung cấp các đối tượng mới được tạo ra, các Entity
, để một trường hợp CacheImplementation
để lưu trữ nó. Lưu ý: CacheImpl
được tiêm vào hàm tạo của trình tạo.
public void build(){
//create new entity
cacheImplementation.add(entity);
}
Điều này có vẻ là phương pháp hay nhất không?
Sau đó chỉnh sửa 0
public interface EntityBuilder {
void setProperty0(PropertyObject propertyObject0);
void setProperty1(PropertyObject propertyObject1);
void setProperty2(PropertyObject propertyObject2);
//...
void build();
}
public class EntityBuilderImpl implements EntityBuilder {
PropertyObject propertyObject0;
PropertyObject propertyObject1;
PropertyObject propertyObject2;
//...
// setters for all properties
@Override
public void build(){
//create new entity
cacheImplementation.add(entity);
}
}
Các builder được sử dụng theo cách sau:
public class EntityProcessor{
private EntityBuilderFactory entityBuilderFactory;//initialized in constructor
void process(EntityDetails entityDetails){
EntityBuilder entityBuilder = this.entityBuilderFactory.getNewEntitytBuilder();
//..
// entityBuilder.set all properties from entityDetails
entityBuilder.build();
}
}
Lưu ý: trường hợp cacheImpl chỉ lưu trữ các đối tượng trong một List<>
đó là truy cập mỗi N giây.
Các biến thể của mẫu thiết kế truyền thống có vẻ đẹp. Tôi đã thêm một đoạn mã nhỏ để xem ý tôi là gì. Có đủ để phán xét không? – VladLucian
Không, không đủ. Phần thú vị hơn sẽ là sử dụng trình tạo và bộ nhớ cache. Btw một danh sách như một bộ nhớ cache âm thanh lẻ. Tôi mong đợi một bản đồ. – janos
Đây không phải là Danh sách, đó là Tập được xóa lúc N giây, mỗi khi quá trình xử lý bắt đầu. Tôi đã chỉnh sửa lại cách trình xây dựng được sử dụng. – VladLucian