设计模式之建造者模式
建造者模式
-
建造者模式结构图:
-
示例代码:
public class BuilderTest { public static void main(String[] args) { ConcreteBuilder builder = new ConcreteBuilder(); Product product =builder.builderPartA("partA") .builderPartB("partB") .builder(); System.out.println(product); } // 抽象建造者 public interface Builder{ Builder builderPartA(String partA); Builder builderPartB(String partB); Product builder(); } // 具体建造者 public static class ConcreteBuilder implements Builder{ private Product product = new Product(); @Override public Builder builderPartA(String partA) { product.setPartA(partA); return this; } @Override public Builder builderPartB(String partB) { product.setPartB(partB); return this; } @Override public Product builder() { return product; } } // 产品 @Data public static class Product { private String partA; private String partB; } }
-
总结:
优点:封装性好,将构建与表示分离,扩展性好,便于控制细节;
缺点:需要多创建一个建造者,如果产品内部发生变化,创建者也要修改,后期维护成本较大.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探