这是我的工厂方法类。
public class AFactory : FactoryBase {
public override ProductBase ProduceProdut() {
return new SuperCoolProduct();
}
}
这是我的构建器类。
public class ABuilder : BuilderBase {
ProductBase product = new SuperCoolProduct()
public override void BuildStep1() {
//Do Something (e.g. product.Add() )
}
public override void BuildStep2() {
//Do some more...(e.g. product.AddMore() )
}
public override ProductBase GetFinalProduct() {
return product;
}
}
我的问题如下〜
1)构建器是否必须公开Director可以调用以合成产品的一些方法?
此类仍可被视为构建器类吗?或者,我们是否必须将其称为工厂类?我认为我们不能再把这个课程称为建筑师了,现在它已经是一个工厂级了。
public class ABuilder : BuilderBase {
ProductBase product = new SuperCoolProduct();
public override ProductBase GetFinalProduct() {
BuildStep1();
BuildStep2();
return product;
}
private void BuildStep1() {
//Do Something (e.g. product.Add() )
}
private void BuildStep2() {
//Do some more...(e.g. product.AddMore() )
}
}
2)下面的代码是否是组合“Builder”模式和“Factory Method”模式的一个很好的例子?
public class AFactory : FactoryBase {
BuilderBase builder;
public AFactory(BuilderBase builder){
this.builder = builder;
}
public override ProductBase ProduceProdut() {
this.builder.BuildStep1();
this.builder.BuildStep1();
return this.builder.GetFinalProduct();
}
}
答案 0 :(得分:0)
至于工厂:调用方法CreateXXX