C#设计模式详解:Builder模式与StringBuilder应用

需积分: 10 3 下载量 179 浏览量 更新于2024-10-24 收藏 1.96MB PDF 举报
C#设计模式系列是吕震宇编著的一本教材,由电子工业出版社出版,ISBN7-5053-8979-3,定价33元,附带光盘。该书旨在帮助读者理解和应用设计模式这一软件开发的关键概念,它基于亚历山大·欧拉和Gamma等人在1995年所撰写的经典著作《设计模式:可复用软件元素的结构》(Design Patterns: Elements of Reusable Software),通称“Gang of Four”或GoF。书中介绍了23种通用的设计模式,这些模式是软件工程中的最佳实践,用于解决常见的设计问题和挑战。 在C#面向对象程序设计的复习部分,作者通过一系列实例如字段与属性、构造函数、方法重载、多态性等,帮助学生巩固基础知识。例如,通过"一加到一百.cs"和"求质数.cs"等代码,展示了如何使用C#实现基础算法和数据结构操作。 设计模式举例中,特别提到了Builder模式。Builder模式是一种行为设计模式,它允许开发者将复杂对象的构建过程分解为多个步骤,每个步骤对应一个类的方法,这样可以更灵活地控制对象的创建过程。在C#中,StringBuilder类就是一个典型的Builder实例,用户可以通过一系列Append方法添加字符串,然后在需要时通过ToString方法获得最终结果。例如,给出的代码片段展示了如何使用StringBuilder动态构建字符串,并在最后清除内容。 关于打印三角形的问题,原程序可能没有使用Builder模式,但要求改写成使用StringBuilder。在新的程序中,可以利用StringBuilder的Append方法逐行添加字符来构造三角形,每次循环添加一行,直到达到所需的行数。下面是一个使用StringBuilder实现的打印三角形的简化示例: ```csharp using System; using System.Text; public class TrianglePrinter { public static void PrintTriangle(int rows) { StringBuilder sb = new StringBuilder(); for (int i = 1; i <= rows; i++) { for (int j = 1; j <= i; j++) { sb.Append('*'); } sb.AppendLine(); // 换行 } Console.WriteLine(sb.ToString()); } public static void Main() { PrintTriangle(5); // 可以根据需要调整行数 } } ``` 在这个改写后的程序中,PrintTriangle方法接受一个参数rows表示三角形的行数,内部使用StringBuilder构建每一行,然后在每行结束后自动添加换行符,最后输出整个三角形。这体现了Builder模式的思想,即通过逐步构造和组合,实现了输出复杂结构的简洁代码。