建造者模式:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
package ttyouni.factory; public interface Builder { void buildHead(); void buildBody(); void buildFoot(); } class ManBuilder implements Builder { @Override public void buildHead() { // TODO Auto-generated method stub } @Override public void buildBody() { // TODO Auto-generated method stub } @Override public void buildFoot() { // TODO Auto-generated method stub } } class WomanBuilder implements Builder { @Override public void buildHead() { // TODO Auto-generated method stub } @Override public void buildBody() { // TODO Auto-generated method stub } @Override public void buildFoot() { // TODO Auto-generated method stub } } class Director { void createPerson(Builder builder) { builder.buildHead(); builder.buildBody(); builder.buildFoot(); } }
使用建造者模式的好处:
1.使用建造者模式可以使客户端不必知道产品内部组成的细节。
2.具体的建造者类之间是相互独立的,对系统的扩展非常有利。
3.由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产生任何影响。
使用建造模式的场合:
1.创建复杂对象时,算法是稳定的,但是算法的过程是不断变化的。
2.要创建的复杂对象的算法,独立于该对象的组成部分,也独立于组成部分的装配方法时。