16 stringbuilder design-patterns builder
我是设计模式的新手,所以我有一个关于Builder模式的问题.今天我听说Builder Pattern与StringBuilderJava中的类C#不同.我知道Builder Pattern的主要目标是在几个步骤中创建复杂的对象......我认为这是StringBuilder用它的方法制作的Append...所以我很难找到差异......
你能告诉我是否真的有什么不同,如果是......它是什么:)?
Pau*_*sik 19
听起来你可能会混淆StringBuilder类和Builder Design Pattern.它们实际上是两个非常不同的想法.
StringBuilder是Java和.NET中的一个类,允许更高性能的字符串操作:(来自MSDN)
String对象是不可变的.每次使用System.String类中的某个方法时,都会在内存中创建一个新的字符串对象,这需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新String对象相关的开销可能很高.如果要在不创建新对象的情况下修改字符串,可以使用System.Text.StringBuilder类.例如,使用StringBuilder类可以在循环中将多个字符串连接在一起时提高性能.
另一方面,Builder Pattern是一种设计模式,它是一组用于组织复杂代码的类和/或接口:
构建器模式是一种软件设计模式.目的是抽象构造对象的步骤,以便这些步骤的不同实现可以构造对象的不同表示.通常,构建器图案用于根据复合图案(结构图案)构建产品.
简单地向现有字符串添加更多字符的Append方法StringBuilder.没有创建新对象(构建器模式的基本功能),并且不涉及设计模式.它是对单个对象实例的单个方法调用.
ad 1) String的创建没有抽象.例如,树结构是抽象,可以由对象或XML文件(实现)表示.
ad 2)使用StringBuilderobject时,有两个协作者:
ClientStringBuilder 使用时Builder Pattern,有四个合作者:
Director- 它说Abstract Builder什么是构造步骤(在树结构的情况下,步骤是:创建root,添加子,...)Abstract Builder- 是使用的抽象Director.Concrete Builder- 是Abstract Builder(可能是XMLBuilder,ObjectBuilder,...)的具体实现Client- 说要Director开始施工.