设计模式(一)创建者模式
来源:互联网 发布:人机界面编程难不难 编辑:程序博客网 时间:2024/06/14 16:17
当我们创建对象的时候,往往会使用构造方法进行创建,但是如果这个对象很复杂,在创建过程中有很多属性需要赋值,这是你是不是会被构造方法中的参数搞得晕头转向。这时候使用创建者模式,可以优雅的解决这个问题。
创建者模式就是把对象的创建与对象的设计进行分离。不关心如何创建对象,只使用创建器去设计自己的对象。
代码举例:
package com.designPattern.builder;/** * 我是复杂对象 */public class ComplexBean { private String name ; private String age ; private String job ; public ComplexBean() { } /** * 这里私有构造方法,防止外部调用,只能使用制定的创建器来创建对象 * ComplexBeanBuilder * @param complexBean */ private ComplexBean(ComplexBean complexBean) { this.name = complexBean.name; this.age = complexBean.age; this.job = complexBean.job; } /** * get set 方法 */ public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getJob() { return job; } public void setJob(String job) { this.job = job; } /** * 创建器内部类 这里为什么是内部类? * 其实外部类也是可以的,只不过外部类,由于存在成员变量 * complexBean 因此有线程安全问题。 */ public static class ComplexBeanBuilder{ private ComplexBean complexBean ; public ComplexBeanBuilder() { //这里也可以使用方法 初始化对象。 // 比如 在类中新加方法 create(){ //this.complexBean = new ComplexBean();} this.complexBean = new ComplexBean(); } /** *返回 当前对象,this代表 这个内部类的对象。 */ public ComplexBeanBuilder setName(String name ){ complexBean.name = name; return this ; } public ComplexBeanBuilder setAge(String job ){ complexBean.job = job; return this ; } public ComplexBeanBuilder setJob(String job ){ complexBean.job = job; return this ; } /** *最终产生对象 */ public ComplexBean build(){ return new ComplexBean(complexBean); } } /** *方便测试 */ @Override public String toString() { return "ComplexBean{" + "name='" + name + '\'' + ", age='" + age + '\'' + ", job='" + job + '\'' + '}'; }}测试:package com.designPattern.builder;public class Test { public static void main(String [] args){ //内部类的方式 ComplexBean complexBean = new ComplexBean.ComplexBeanBuilder() //通过创建器进行创建对象,非常明确每个参数,避免复杂代码 .setAge("15").setJob("progremer").setName("TOM").build(); System.out.println(complexBean ); }}
阅读全文
0 0
- 设计模式(一)创建者模式
- 设计模式 一 创建者模式 Builder(生成器)
- 设计模式--创建者模式
- 设计模式-创建者模式
- 设计模式 (四)创建者模式(Builder)
- 设计模式 (四)创建者模式(Builder)
- 设计模式 (四)创建者模式(Builder)
- 设计模式学习(六)创建者模式
- 设计模式系列(12)创建者模式
- 设计模式(04)创建者模式
- 创建者设计模式
- 设计模式系列-创建者模式
- 设计模式之创建者模式
- 设计模式-创建者模式(Builder)
- 设计模式之创建者模式
- 设计模式之创建者模式
- 设计模式笔记-创建者模式
- 设计模式之创建者模式
- 概率分布之间的距离度量以及python实现
- 转转&去哪儿 技术沙龙
- java23种设计模式之单例模式
- html标签和元素
- JS——计算ul li中的数字的总和
- 设计模式(一)创建者模式
- CentOS7修改ssh端口号,增强服务器安全
- ActiveMQ环境搭建及实例详解
- server.xml详解
- 对话英特尔AI三高管:看好AI芯片入局者多样性,不断调整AI投资逻辑
- JAVA面试
- 入门Python 与机器学
- 对话高通创投沈劲:AI投资不会降温,端智能是中小创企的未来
- 动力电池三国杀 是谁赶走了韩国人?