C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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 val) {
                    this.myField3 = val;
                    return this;
            }
            public ComplicatedObject build() {
                    return new ComplicatedObject(this);
            }
    }
    public static void main(final String[] args) {
    //built like this

            ComplicatedObject obj = new ComplicatedObject.builder().field1("blah").field2("lol").field3(4).build();

    }
}

解决方法

它不仅可以适应C,而且习惯用法改编自C语言.

我想我第一次听说这个成语是在Java出现之前. IIRC Bjarne Stroustrup在C第2版中提到了这一点,解释了为什么C不需要smalltalk样式命名参数.

我可能会把我的约会错了,但这在C大约15岁.

编辑:它似乎首先在C(6.5.1)的设计和演变中描述,它被称为命名函数参数

大佬总结

以上是大佬教程为你收集整理的c中有效的java builder成语等价?全部内容,希望文章能够帮你解决c中有效的java builder成语等价?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。