建造者模式用JAVA的简单实现

建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。

 

题目

写情书,分为几个步骤:

  1. 称呼对方
  2. 称赞对方
  3. 表白
  4. 约会交流

 

Contend类主要包含,写情书的步骤



public class Contend {
	private String askName;
	public String getAskName() {
		return askName;
	}
	public void setAskName(String askName) {
		this.askName = askName;
	}
	public String getPairse() {
		return pairse;
	}
	public void setPairse(String pairse) {
		this.pairse = pairse;
	}
	public String getExpress() {
		return express;
	}
	public void setExpress(String express) {
		this.express = express;
	}
	public String getCommunication() {
		return communication;
	}
	public void setCommunication(String communication) {
		this.communication = communication;
	}
	private String pairse;
	private String express;
	private String communication;
	
	

}

Builder类创建对象



public interface Builder {

	 void buildAskName();
	 void buildParise();
	 void buildExpress();
	 void buildCommunication();
	
	 Contend createContent();
	
}

BoyBuilder类实例化创建对象


//具体的builder类
public class BoyBuilder implements Builder{
	
	private Contend Boycontend;
	
	public BoyBuilder(){
		this.Boycontend = new Contend();
	}

	@Override
	public void buildAskName() {
		// TODO Auto-generated method stub
		this.Boycontend.setAskName("BOY称呼对方");
		System.out.println("BOY称呼对方");
	}

	@Override
	public void buildCommunication() {
		// TODO Auto-generated method stub
		this.Boycontend.setPairse("BOY赞美对方");
		System.out.println("BOY赞美对方");
	}

	@Override
	public void buildExpress() {
		// TODO Auto-generated method stub
		this.Boycontend.setExpress("BOY表白");
		System.out.println("BOY表白");
	}

	@Override
	public void buildParise() {
		// TODO Auto-generated method stub
		this.Boycontend.setCommunication("BOY约会");
		System.out.println("BOY约会");
	}

	@Override
	public Contend createContent() {
		// TODO Auto-generated method stub
		return this.Boycontend;
	}

	

}

ManBuilder具体实例化对象



public class ManBuilder implements Builder {

	private Contend manBuilder;
	public ManBuilder(){
		this.manBuilder = new Contend();
	}
	@Override
	public void buildAskName() {
		// TODO Auto-generated method stub
		System.out.println("man叫名字");
	}

	@Override
	public void buildCommunication() {
		// TODO Auto-generated method stub
		System.out.println("man叫约会");
	}

	@Override
	public void buildExpress() {
		// TODO Auto-generated method stub
		System.out.println("man叫表白");
	}

	@Override
	public void buildParise() {
		// TODO Auto-generated method stub
		System.out.println("man叫称赞");
	}

	@Override
	public Contend createContent() {
		// TODO Auto-generated method stub
		return this.manBuilder;
	}

}

Director指导生产



//负责指导生成动作组装
public class Director {

	public Contend createContendByDirector(Builder builder){

		builder.buildAskName();
		builder.buildParise();
		builder.buildExpress();
		builder.buildCommunication();
		return builder.createContent();
	}
}

Test测试类



public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//指导者,组合动作
		Director director = new Director();
		Contend createContendByDirector = director.createContendByDirector(new BoyBuilder());
	
		Contend manBuilder = director.createContendByDirector(new ManBuilder());
		
		System.out.println(createContendByDirector);
		System.out.println(manBuilder);
	}

}

结果如下:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybbgrain

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值