设计模式之建造者模式

建造者模式

  1. 建造者模式结构图:

  2. 示例代码:

    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;
    
        }
    
    }
    
  3. 总结:

    优点:封装性好,将构建与表示分离,扩展性好,便于控制细节;

    缺点:需要多创建一个建造者,如果产品内部发生变化,创建者也要修改,后期维护成本较大.

posted @   justKen  阅读(43)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
点击右上角即可分享
微信分享提示