JAVA设计模式之——构建者设计模式
2016-07-30 19:41
429 查看
构建者设计模式:一个复杂对象的构建独立于它的组成部分。
下面以一个内部类的方式解释这种创建者设计模式:
User类:
测试类Test:
运行结果:
下面以一个内部类的方式解释这种创建者设计模式:
User类:
package com.xiaofeng; /** * Project :Danli * Created : XiaoFeng1015 * Date : 2016/7/30 */ // 构件者模式 public class User { private String password; private String username; private String nickName; private int age; private String email; public User(String password, String username) { this.password = password; this.username = username; } // 构建者模式,私有的构造方法,在内部类中可以使用 private User(String password, String username, String nickName, int age, String email) { this.password = password; this.username = username; this.nickName = nickName; this.age = age; this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUserName() { return username; } public void setUserName(String userword) { this.username = userword; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } // 静态内部类 // 使用方式,和普通类一样 // 1、静态内部类可以使用外部类中所有的静态属性和方法。包括私有的; // 2、静态内部类还可以使用外部类中所有的构造方法。包括私有的。 public static class Builder { private String password; private String username; private String nickName; private int age; private String email; public Builder(String password, String username) { this.password = password; this.username = username; } // set方法返回一个Builder的对象,用来以后对User对象的属性的扩展。 public Builder setPassword(String password) { this.password = password; return this; } public Builder setNickName(String nickName) { this.nickName = nickName; return this; } public Builder setAge(int age) { this.age = age; return this; } public Builder setEmail(String email) { this.email = email; return this; } public User build() { return new User(password, username, nickName, age, email); } } }
测试类Test:
package com.xiaofeng; import com.xiaofeng.User.Builder; /** * Project :Danli * Created : XiaoFeng1015 * Date : 2016/7/30 */ public class Test02 { public static void main(String[] args) { User user = new Builder("user", "123456").setEmail("1@1.net").setAge(10).build(); System.out.println(user.getUserName()); System.out.println(user.getNickName()); System.out.println(user.getEmail()); } }
运行结果:
相关文章推荐
- Java设计模式--建造者模式
- JavaScrpt笔记
- Java内部类
- JAVA不可变类(immutable)机制与String的不可变性
- Java基础——类成员
- 在cmd下编译一个简单的servlet时出现程序包javax.servlet不存在
- 使用枚举代替常量,简化工作!
- Struts2批量验证(POC)
- java设计模式_外观模式
- java夯实基础系列:面对对象原则
- spring <context:annotation-config> 跟 <context:component-scan>诠释及区别
- java设计模式_代理模式
- Java基础之(十二)二维数组
- java开发为什么要设置环境变量path,class path,java_home
- Java的异常处理及throw的使用
- java中8种基本数据类型、基本数据类型的转换与运算符
- StringUtil工具类
- Java接口
- JAVA 面向对象之 多态
- Java基础之IO框架