我看到一个构建器模式在 JAVA 中的实现不同于它的 C# 版本和四人帮书中的“经典”插图。
Director director = new Director();
Builder b1 = new ConcreteBuilder1();
Builder b2 = new ConcreteBuilder2();
Product p1 = director.Make(b1);
Product p2 = director.Make(b2)
Java - link
Product p1 = new Product.Builder("p1").Name("Product1").Version("v1").Build();
Product p2 = new Product.Builder("p2").Name("Product2").Version("v2").Build();
当我进入 Android 开发时(因为我来自 .NET 世界),我第一次看到 JAVA 的用法 - 对我来说,JAVA 版本比它的 C# 版本更优雅。
现在底层实现当然不同了,在JAVA例子中Builder是Product的一个嵌套类,它的Build()方法返回父类的构造实例;上面的 C# 解释更类似于抽象工厂。
上面提到的一切显然都是两种不同的模式,尽管它们本质上都是结构性的。有谁知道第二个例子在 C# 中叫什么?
最佳答案
这是你得到的不同模式。
首先(C#)是构建复杂的对象
对象的第二种(Java)构建器技术,无需外部构建器。
所以,这两种模式做了不同的事情,并且有不同的范围
关于c# - 构建器模式实现 C# vs. JAVA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9959571/