zoukankan      html  css  js  c++  java
  • 建造者模式之构建器

    事实上建造者模式就是类中创建一个内部类 然后外部类构造函数传递的是一个内部类的对像。然后在内部类中的set和get方法中返回值是一个内部类对像,这样就能非常好的实现建造者模式。

    事实上他就像StringBuilder中的append:string a=“a”。a.append("wo").append("shi").append("shei")。

    实现一直不断的追加字符串。

    样例例如以下:

    package com.blueZhang.innerDemo5;
    
    public class Test {
    
    	public static void main(String[] args) {
    		// StringBuffer ss = new StringBuffer("abc");
    		// ss.append("123").append("000").append("xxx");// --->"abc123000xxx"
    		// System.out.println(ss.toString());
    
    		QQ.Builder qb = new QQ.Builder("10000", "888888");
    		qb.setAge(12).setSex("男");// .setEmail("abc@199.com");
    
    		QQ qq = new QQ(qb);
    		System.out.println(qq);
    
    		QQ q = qb.build();
    		System.out.println(q);
    
    	}
    }
    
    class QQ {
    	String qqNo;
    	String pass;
    	String sex;
    	int age;
    	String email;
    
    	// 构建器
    	public static class Builder {
    		String qqNo;
    		String pass;
    		String sex;
    		int age;
    		String email;
    
    		// 要求qq号和password必填,其它选填
    		public Builder(String qqNo, String pass) {
    			this.qqNo = qqNo;
    			this.pass = pass;
    		}
    
    		public Builder setAge(int age) {
    			this.age = age;
    			return this;
    		}
    
    		public Builder setSex(String sex) {
    			this.sex = sex;
    			return this;
    		}
    
    		public Builder setEmail(String email) {
    			this.email = email;
    			return this;
    		}
    
    		// 2
    		public QQ build() {
    			return new QQ(this);
    		}
    
    	}
    
    	public QQ(Builder b) {
    		this.qqNo = b.qqNo;
    		this.pass = b.pass;
    		this.sex = b.sex;
    		this.age = b.age;
    		this.email = b.email;
    	}
    
    	@Override
    	public String toString() {
    
    		return qqNo + pass + age + sex + email;
    	}
    }


  • 相关阅读:
    Django实战(4):scaffold生成物分析
    Django实战(3):Django也可以有scaffold
    创建第一个模型类
    1. 实战系列的开发目标
    Django第一步
    URLconf+MTV:Django眼中的MVC
    mp4文件格式解析
    傅里叶分析之掐死教程(完整版)更新于2014.06.06
    关于Spinlock机制的一点思考
    spinlock变量没有初始化
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8658171.html
Copyright © 2011-2022 走看看