builder模式实例
package heapStark.blogCode.designPattern.builder;
public class BaseBean {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "BaseBean{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public static class BaseBuilder<T extends BaseBuilder,P extends BaseBean>{
protected P bean;
public BaseBuilder(P bean) {
this.bean = bean;
}
public int getAge() {
return bean.getAge();
}
public T setAge(int age) {
this.bean.setAge(age);
return (T)this;
}
public String getName() {
return bean.getName();
}
public T setName(String name) {
this.bean.setName(name);
return (T)this;
}
public P builder(){
return bean;
}
}
}
子类
package heapStark.blogCode.designPattern.builder;
public class Bean extends BaseBean {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String toString() {
return "Bean{" +
"id='" + id + '\'' +
"} " + super.toString();
}
public static class BeanBuilder extends BaseBean.BaseBuilder<BeanBuilder,Bean>{
public BeanBuilder(Bean bean) {
super(bean);
}
public BaseBuilder setId(String id) {
this.bean.setId(id);
return this;
}
}
}
builder模式实例的更多相关文章
- Joshua Bloch错了? ——适当改变你的Builder模式实现
注:这一系列都是小品文.它们偏重的并不是如何实现模式,而是一系列在模式实现,使用等众多方面绝对值得思考的问题.如果您仅仅希望知道一个模式该如何实现,那么整个系列都会让您失望.如果您希望更深入地了解各个 ...
- Java Builder模式 体验(二)
在上篇文章中,对Java Builder模式的使用体验主要是从Builder对构造器改造方面的优秀特性来说的,感觉并没有从Java Builder模式本身的功能和作用去写,因此决定再从Build ...
- 建造者(Builder)模式
建造者模式是对象的创建模式.建造模式可以将一个产品的内部表象(internal representation)与产品的生产过程分割开来,从而可以使一个建造过程生成具有不同的内部表象的产品对象. 产品的 ...
- Builder模式详解及其在Android开发中的应用
一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比 ...
- Builder模式的思考(Effective Java)
<Effective Java>(第2版)中第二条中提到:遇到多个构造器参数时要考虑用构建器.在复习static关键字和内部类时回头看了一下,这才明白了为什么要用静态内部类来做处理,这里记 ...
- Effective Java 第三版——2. 当构造方法参数过多时使用builder模式
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- java的设计模式 - Builder模式
Builder 模式的目的? 构造对象的方式过于复杂,不如将之抽离出来.比如,构造器参数过多 这样说也有点抽象,举个例子吧. 举个例子 比如 非常热门的消息队列RabbitMQ 的 AMQP.Basi ...
- Java之Builder模式(并用OC实现了这种模式)
本人在学习Java,直接先学习Netty框架,因为Netty框架是业界最流行的NIO框架之一,在学习的过程中,了解到Netty服务端启动需要先创建服务器启动辅助类ServerBootstrap,它提供 ...
- 设计模式-----Builder模式
前言 近日,看到Myabtis中组件中SqlSessionFactory由SqlSessionFactoryBuilder().build()生成时,且采用Builder模式,遂记录学习之. SqlS ...
随机推荐
- 『optimization 动态规划』
optimization Description \(visit\_world\) 发现有些优化问题可以用很平凡的技巧解决,所以他给你分享了这样一道题: 现在有一个长度为N的整数序列\(\{a_i\} ...
- Redis(一) redis安装、启停
Redis是开源的内存数据存储,常被用作为内存数据库.缓存.全局队列.计数器等等. Redis安装 Redis分为多种模式:单机模式.高可用模式.集群模式.这篇中主要简介单机版的安装方式. 源码构建式 ...
- jQuery浮窗图片到页面中间的代码
jQuery浮窗图片到页面中间的代码 <!doctype html> <html> <head> <meta charset="utf-8" ...
- 我遇到的WPF的坑
转自 林德熙Blog 本文:我遇到的WPF的坑 目录 单例应用在多实例用户无法使用 标记方法被使用 当鼠标滑过一个被禁用的元素时,让ToolTip 显示 获取设备屏幕数量 获取当前域用户 绑定资源文件 ...
- python2.7 与python3.X区别
1,print("中文") python2.7,会报错 原因:py2.7用ascll码 解决:2.7头部加入并保存的文件用utf-8编码 # -*- coding: utf-8 ...
- 一、NodeJS入门——准备工作(1)——NodeJS的安装
目录 1.介绍 2.nodejs下载 3.nodejs安装 4.nodejs的简单实用 5.nodejs的经典入门:hello world 6.总结 1 介绍 这是一系列的内容主要是关于我在学习 ...
- Risc-V简要概括
1.Risc-V硬件平台术语 一个RiscV硬件平台可以包含一个或多个RiscV兼容的核心.其它非RiscV兼容的核心.固定功能的加速器.各种物理存储器结构.I/O设备以及允许这些部件相互连通的互联结 ...
- current transaction is aborted, commands ignored until end of transaction block
current transaction is aborted, commands ignored until end of transaction block Error updating datab ...
- 1047--Remove All Adjacent Duplicates In String
public class RemoveAllAdjacentDuplicatesInString { /* 解法一:栈 */ public String removeDuplicates(String ...
- redis不能保存bean对象
可用JSON转为json格式 // 2.3 将用户信息存储在redis中 String memberToJson = JSON.toJSON(member).toString(); 需要maven坐标 ...