我们还可以将这个称为构建模式吗?

时间:2011-05-19 19:23:54

标签: design-patterns

这是我的工厂方法类。

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();
                }
        }

1 个答案:

答案 0 :(得分:0)

  1. 我称之为导演。但是,是的。您可以将其称为工厂方法实现。
  2. 至于工厂:调用方法CreateXXX

    更为常见