c# - 构建器模式实现 C# vs. JAVA

标签 c# java design-patterns builder

我看到一个构建器模式在 JAVA 中的实现不同于它的 C# 版本和四人帮书中的“经典”插图。

C#-Gang of Four version

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/

相关文章:

c# - WPF从复选框转换选定值

java - 什么时候应该使用 PathVariable 什么时候应该使用 RequestParam

java - Altbeacon,如何处理找不到信标的情况? if (beacons.size() > 0) { 的 else 语句

c++ - 嵌入式 C++ : dynamic typing without dynamic allocation?

java - 要使用 REST API 需要实现什么设计模式?

c# - 在 monoTouch 中格式化大量数据

c# - 性能 - 数据库查询和数据表查询

c# - 从外部运行 Visual Studio 测试项目

java - Android Studio 使用 , 而不是 .格式化字符串后

algorithm - 在不修改集合的情况下获取更改命令