优雅的Builder模式代码

优雅的Builder模式

@Data
public class SearchColumn {
    private List<Column> columns;

    public SearchColumn(List<Column> columns) {
        this.columns = columns;
    }

    public static SearchColumn.Builder builder() {
        return new Builder();
    }

    public static class Builder {
        private List<Column> columns;

        private Builder() {
            this.columns = new ArrayList<>();
        }

        public Builder addColumn(String name, String value) {
            columns.add(new Column(name, value));
            return this;
        }

        public SearchColumn build() {
            if (columns.isEmpty()) {
                throw ExceptionFactory.createException(ExceptionCode.PK_EMPTY_COLUMN);
            } else {
                return new SearchColumn(columns);
            }
        }
    }

    public static void main(String[] args) {
        SearchColumn.builder()
                .addColumn("ibsn", "12345")
                .addColumn("author", "Jon")
                .build();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Python 中实现建造者模式,需要定义一个抽象的建造者类和具体的建造者类,然后定义一个指挥者类来指导如何创建产品。 下面是一个简单的示例,展示了如何在 Python 中实现建造者模式: ```python class Builder: def build_part_a(self): pass def build_part_b(self): pass def get_result(self): pass class ConcreteBuilder(Builder): def __init__(self): self.product = Product() def build_part_a(self): self.product.add("Part A") def build_part_b(self): self.product.add("Part B") def get_result(self): return self.product class Product: def __init__(self): self.parts = [] def add(self, part): self.parts.append(part) def list_parts(self): print(f"Product parts: {', '.join(self.parts)}") class Director: def __init__(self, builder): self._builder = builder def construct(self): self._builder.build_part_a() self._builder.build_part_b() if __name__ == "__main__": builder = ConcreteBuilder() director = Director(builder) director.construct() product = builder.get_result() product.list_parts() ``` 在这个示例中,我们定义了一个 `Builder` 类和一个具体的建造者类 `ConcreteBuilder`,其中 `Builder` 类定义了用于建造产品的方法,而 `ConcreteBuilder` 类实现了这些方法并创建了一个 `Product` 类的实例。然后,我们定义了一个指挥者类 `Director`,它指导如何使用 `ConcreteBuilder` 类来创建产品。最后,我们在 `main` 函数中创建了一个 `ConcreteBuilder` 类的实例,然后使用

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值