FreeBuilder Java 的 Builder 模式生成器开源项目

我要开发同款
匿名用户2016年12月16日
117阅读

技术信息

开源地址
https://github.com/google/FreeBuilder
授权协议
Apache

作品详情

FreeBuilder

为Java1.6+ 自动生成 Builder模式。

当设计类的构造函数或静态工厂具有多个参数时,Builder模式是一个不错的选择。—— EffectiveJava,第二版,第39页

背景

在Java中实现Builder模式容易出错和重复。即使是一个简单的四字段类,最基本的构建器API需要39行代码,如果你不使用像AutoValue这样的实用程序来生成值样板,则需要72行代码。

使用import org.iferred.freebuilder.FreeBuilder;@FreeBuilderpublic iterface Perso {  /** Returs the perso's full (Eglish) ame. */  Strig ame();  /** Returs the perso's age i years, rouded dow. */  it age();  /** Builder of {@lik Perso} istaces. */  class Builder exteds Perso_Builder { }}JavaBeacovetio

如果值类型遵循JavaBea命名约定,只需在访问器方法前面加上'get'(或者,布尔访问器是'is')。FreeBuilder会跟随,并在setter方法上添加“set”前缀,以及从toStrig输出中删除前缀。

@FreeBuilderpublic iterface Perso {  /** Returs the perso's full (Eglish) ame. */  Strig getName();  /** Returs the perso's age i years, rouded dow. */  it getAge();  /** Builder of {@lik Perso} istaces. */  class Builder exteds Perso_Builder { }}Perso perso = ew Perso.Builder()    .setName("Phil")    .setAge(31)    .build();System.out.pritl(perso);  // Perso{ame=Phil, age=31}

功能介绍

FreeBuilder 为 Java 1.6+ 自动生成 Builder 模式。 当设计类的构造函数或静态工厂具有多个参数时,Builder 模式是一个不错的选择。—— Effective Ja...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论