最近我遇到了一个引起我的兴趣的建造者模式。
所以,我有一个EntityBuilder
来构建一个名为Entity
的实体,但它不会返回实体。以下是该方法的签名:
public void build();
相反,在build()
方法内部,它将新创建的对象Entity
传递给一个CacheImplementation
实例进行存储。
注意:在构建器的构造函数中注入了CacheImpl
。
public void build(){
//create new entity
cacheImplementation.add(entity);
}
这是否听起来像是最佳实践?
稍后编辑 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);
}
}
生成器的使用方式如下:
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();
}
}
注意: cacheImpl实例仅将实体存储在一个
List<>
中,每N秒访问一次。