小编Mik*_*ons的帖子

在c ++中有效的java builder成语等价?

这是自从阅读Effective Java以来​​我一直在使用的一个很好的习惯用法.我一直试图找到一个C++等价物或类似的东西,并没有运气.GoF书中的传统建筑模式在我的案例中并不适用.这是一个复杂的对象,它有一个非常混乱的构造函数.下面是Java的一个小实现.

class ComplicatedObject {

    private String field1;
    private String field2;
    private int      field3;

    private ComplicatedObject(Builder builder) {

            this.field1 = builder.myField1;
            this.field2 = builder.myField2;
            this.field3 = builder.myField3;

    }

    public static class Builder {

            private String myField1 = "some default";
            private String myField2 = "some other default";
            private int           myField3 = -1;

            public Builder() { }
            public Builder field1(String val) {
                    this.myField1 = val;
                    return this;
            }
            public Builder field2(String val) {
                    this.myField2 = val;
                    return this;
            }
            public Builder field3(int …
Run Code Online (Sandbox Code Playgroud)

c++ java design-patterns

3
推荐指数
2
解决办法
827
查看次数

标签 统计

c++ ×1

design-patterns ×1

java ×1