【java设计模式】建造者模式---StringBuilder讲解

在复习设计模式的时候,了解到StringBuilder使用了建造者模式,在此记录一下。

【java设计模式】建造者模式---StringBuilder讲解_第1张图片

首先我们要了解建造者模式的构成。

【java设计模式】建造者模式---StringBuilder讲解_第2张图片


建立一个建造者模式的小栗子。

我们建造一个属性为Person的产品,同时创建Man 和Women.

1.创建接口PersonBuilder,其中包含需要创建的 head body foot   即  Builder

2.创建实现类WomenBuilder和ManBuilder来实现PersonBuilder接口中的方法,即 ConcreteBuilder

3.创建PersonDirector 来指定你要创建的是Women还是Man,即Director

4.由于最后生成的产品是Person,所以我们要创建实体类Person,

5.同时我们可以创建普通类Man和Women,来继承Person, 增强拓展性,方便PersonDirector进行管理


下面进行实现一下:

【java设计模式】建造者模式---StringBuilder讲解_第3张图片

步骤一:创建产品类Person

public class Person {
    private String head;
    private String body;
    private String foot;
	public String getHead() {
		return head;
	}
	public void setHead(String head) {
		this.head = head;
	}
	public String getBody() {
		return body;
	}
	public void setBody(String body) {
		this.body = body;
	}
	public String getFoot() {
		return foot;
	}
	public void setFoot(String foot) {
		this.foot = foot;
	}
    
}

步骤二:创建Man和Women类来继承Person

public class Man extends Person{
    public Man() {
    	System.out.println("开始建造男神");
    }
}
public class Women extends Person{
    public Women() {
    	System.out.println("开始建造女神");
    }
}


步骤三:创建接口PersonBuilder,其中包含需要创建的 head body foot   即  Builder

public interface PersonBuilder {
   void buildHead();
   void buildBody();
   void buildFoot();

   Person builderPerson();
	   
}

步骤四:创建实现类WomenBuilder和ManBuilder来实现PersonBuilder接口中的方法,即 ConcreteBuilder

public class ManBuilder implements PersonBuilder{

	Person person;
	
	public ManBuilder() {
		person=new Man();
	}
	
	@Override
	public void buildHead() {
		person.setBody("建造男神的头");
	}

	@Override
	public void buildBody() {
		person.setBody("建造男神的身体");
	}

	@Override
	public void buildFoot() {
		person.setBody("建造男神的脚");
	}

	@Override
	public Person builderPerson() {
		return person;
	}

}
public class WomenBuilder implements PersonBuilder{

	Person person;
	
	public WomenBuilder() {
		person=new Women();
	}
	
	@Override
	public void buildHead() {
		person.setBody("建造女神的头");
	}

	@Override
	public void buildBody() {
		person.setBody("建造女神的身体");
	}

	@Override
	public void buildFoot() {
		person.setBody("建造女神的脚");
	}

	@Override
	public Person builderPerson() {
		return person;
	}

}

步骤五:创建PersonDirector 来指定你要创建的是Women还是Man,即Director

public class PersonDirector {
    public Person  constructPerson(PersonBuilder pb) {
    	pb.buildHead();
    	pb.buildBody();
    	pb.buildFoot();
	return pb.builderPerson();
    }
}

步骤六:建个测试类测试一下。

public class Test {
   public static void main(String[] args) {
	PersonDirector pd=new PersonDirector();
	Person manPerson=pd.constructPerson(new ManBuilder());
	Person womenPerson=pd.constructPerson(new WomenBuilder());
  }
}

【java设计模式】建造者模式---StringBuilder讲解_第4张图片


下面记录一下StringBuilder

【java设计模式】建造者模式---StringBuilder讲解_第5张图片


你可能感兴趣的:(java设计模式,JAVA)