`
sha1064616837
  • 浏览: 40271 次
  • 性别: Icon_minigender_2
  • 来自: 湖南
社区版块
存档分类
最新评论

Builder模式POJO

阅读更多
/**
 * Person Builder Test
 * @author Administrator
 * @date 2015-4-18
 * @time 上午11:21:15
 * @version 1.0
 */
public class Person {
	
	private String id;
	private String name;
	private String password;
	private String phone;
	private String mail;
	private String address;
	
	/**无参构造器*/
	public Person() {
	}
	
	/**builder模式构造器*/
	public Person(PersonBuilder build){
		this.id = build.id;
		this.name = build.name;
		this.password = build.password;
		this.phone = build.phone;
		this.mail = build.mail;
		this.address = build.address;
	}
	
       /**定义person的builder*/
	public static class PersonBuilder{
		private String id;
		private String name;
		private String password;
		private String phone;
		private String mail;
		private String address;
		
		public static PersonBuilder newBuilder(){
			return new PersonBuilder();
		}	
		public Person build(){
			return new Person(this);
		}
		public PersonBuilder id(String id)
		{
			this.id = id;
			return this;
		}
		public PersonBuilder name(String name)
		{
			this.name = name;
			return this;
		}
		public PersonBuilder password(String password)
		{
			this.password = password;
			return this;
		}
		
		public PersonBuilder phone(String phone)
		{
			this.phone = phone;
			return this;
		}
		
		public PersonBuilder mail(String mail)
		{
			this.mail = mail;
			return this;
		}
		
		public PersonBuilder address(String address)
		{
			this.address = address;
			return this;
		}
		
	}
	
	public String getId()
	{
		return id;
	}
	public void setId(String id)
	{
		this.id = id;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public String getPassword()
	{
		return password;
	}
	public void setPassword(String password)
	{
		this.password = password;
	}
	public String getPhone()
	{
		return phone;
	}
	public void setPhone(String phone)
	{
		this.phone = phone;
	}
	public String getMail()
	{
		return mail;
	}
	public void setMail(String mail)
	{
		this.mail = mail;
	}
	public String getAddress()
	{
		return address;
	}
	public void setAddress(String address)
	{
		this.address = address;
	}

       //测试
	public static void main(String[] args)
	{
         //使用起来特别方便,但可以用传统的构造器,按个人喜好!!!
		Person p = PersonBuilder.newBuilder().id("123").name("abc").mail("dabc@163.com").build();
		System.out.println(p.getName());
	}
}
分享到:
评论

相关推荐

    pojo-builder:使用 Java 8 的智能 POJO 构建器

    "pojo-builder"是一种设计模式,它允许我们以链式调用的方式设置POJO对象的属性,提供了一种更易读、更少错误的代码结构。这种模式通常通过创建一个Builder类来实现,Builder类拥有设置POJO属性的方法,并返回自身...

    POJO-Best-Practice:创建模型POJO的Android最佳实践

    - 使用Builder模式创建POJO,可以提供更简洁、易读的构造方法,减少冗余代码。例如,`Person.builder().name("John").age(30).build()`。 4. **Data Class**: - 如果使用Kotlin,可以利用其内置的数据类功能,...

    BuilderBuilder:使用流利的构建器对象而不是构造器生成Java POJO的工具

    Builder模式则解决了这个问题,通过将构建过程分解为一系列方法调用,每个方法设置一个属性,使得代码更易读,也更容易进行单元测试。 BuilderBuilder的工作原理是自动生成这些构建器类,开发者只需要提供POJO的...

    看含注解java文件的源码-pojobuilder:用于PojoBuilders的Java代码生成器

    看含注解java文件的源码PojoBuilder - Pojo Builders 的代码生成器 添加一名作者 项目主页: 关于 PojoBuilder Generator ...建造者模式见。 流畅的界面见 许可证和依赖项 位于“src”目录中的源代码位于 P

    技術分享_tcci-sap_enhancement1

    在这里,Builder模式可能被用来更优雅地构建和组织SAP相关的数据结构,特别是当处理多条记录时,如"多筆資料-1"和"多筆資料-2"所示的代码变更。 接下来,我们讨论了RFC输入输出的问题。在RFC input部分,有table/...

    The Builder plug-in-开源

    该构建器插件项目包含一个Eclipse插件,该插件可自动将修改后的GoF Builder模式的应用程序应用到目标POJO,从而将POJO转换为不可变对象,从而可以提高并发应用程序中的线程安全性。

    BuilderPojoGenerator:idea(android studio)的插件,以生成构建器模式的Java代码

    BuilderPojoGeneratoridea(android studio)的插件,以生成构建器模式的Java代码下载在插件存储库中搜索“ BuilderPojoGenerator”如何使用输入POJO的代码,右键单击,选择“ Builder Generator”,更改选项,然后...

    MyBatis3用户指南中文版

    SelectBuilder和SqlBuilder章节则分别介绍了如何使用Builder模式构建SELECT语句和SQL语句,为开发者提供了更灵活的SQL构建方式。 最后,文档还对MyBatis的各个组件和概念进行了总结和说明,帮助开发者全面了解...

    hibernate使用详解

    6. **配置选项**:除了基本的数据库连接信息,还可以配置其他参数,如 `hibernate.hbm2ddl.auto`,它决定了 Hibernate 如何处理数据库模式的创建或更新。例如,设置为 `create` 会在每次启动应用时创建新的数据库表...

    快速生成DTO

    考虑使用Builder模式、AutoValue库或Lombok库可以帮助简化DTO的构造和维护。 通过以上知识点,我们可以理解如何利用Excel模板和Java工具快速生成DTO,以及这在实际开发中的价值和注意事项。这种技术简化了编码工作...

    Java bean转换为Json Schema

    在Java中,将Bean转换为Json Schema可以帮助我们在服务器端验证客户端发送的数据是否符合预设的模式,避免因数据格式错误导致的问题。这种转换通常通过一些库或工具来实现,例如`json-schema-generator`或`org.json...

    Lombok使用讲解及原理1

    `@Builder` 注解允许你创建复杂的构建器模式,简化创建对象的过程,支持链式调用。`@SneakyThrows` 可以在不声明 throws 关键字的情况下抛出受检异常,`@Synchronized` 则将方法声明为同步,使用私有锁,避免了使用 ...

    EventBus的详细使用

    EventBus 提供了调试模式,通过 `EventBus.builder().logNoSubscriberMessages(true)` 可以开启日志输出,帮助开发者检查是否有未订阅的事件。 在 `EventBusText` 文件中,可能包含了使用 EventBus 的实际代码示例...

    lombok-plugin.zip

    6. `@Builder`: 为类提供构建器模式的支持。 Lombok插件的使用可以提升代码的可读性和简洁性,但需要注意的是,不是所有项目都适合引入Lombok。在团队协作中,需确保所有成员都熟悉Lombok的用法,同时考虑到可能对...

    使用Maven Hibernate5 之反向工程

    在Hibernate中,这通常由Hibernate Tools完成,它可以读取数据库模式并生成POJO(Plain Old Java Object)类,这些类代表数据库中的表,包含了属性(对应字段)和getter/setter方法。这样,开发者就不需要手动创建每...

    lombok-plugin-0.29-2019.2.zip

    7. `@Builder`:用于创建一个构建器模式的类,使创建对象的过程更加简洁。 8. `@Value`:与 `@Data` 类似,但创建的是不可变对象,且默认为 final。 安装 Lombok 插件后,IDE 将能够理解并正确处理这些注解,例如...

    最新 lombok 1.18.4.jar

    6. `@Builder`:允许创建一个构建器模式,用于复杂对象的构建,使代码更清晰且易于维护。 7. `@NonNull` 和 `@Cleanup`:前者用于标记非空字段,后者在使用后会自动关闭资源,如文件流。 Lombok 1.18.4 版本可能...

    lombok 1.18.24

    - 使用 `@Builder` 注解来创建构建者模式,方便构建复杂对象。 - 结合使用 `@Singular` 注解来处理集合类型的字段,简化集合的添加操作。 综上,Lombok 是一个强大的工具,可以显著提高 Java 项目的代码质量和...

Global site tag (gtag.js) - Google Analytics