生成器模式:
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适用性:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构造过程必须允许被构造的对象有不同的表示时。
例子:
/*装电脑需要装内存和硬盘*/
public class compositionComputer
{
public void addHarddisk()
{
system.out.println("i am a new Harddisk!") ;
}
public void addMemory()
{
system.out.println("i am a new memory!") ;
}
}
public abstract class compositionComputerBuilder
{
protected compositionComputer = new compositionComputer() ;
public void composition() ;
}
public class compositionComputerBuilderA extends compositionComputerBuilder
{
public void composition()
{
compositionComputer.addHarddisk();
compositionComputer.addMemory() ;
}
}
public class compositionComputerBuilderB extends compositionComputerBuilder
{
public void composition()
{
compositionComputer.addMemory() ;
compositionComputer.addHarddisk();
}
}
public class direct
{
compositionComputerBuilder builder = null ;
public directory(compositionComputerBuilder builder)
{
this.builder = builder ;
}
public showStep()
{
builder.composition ;
}
}
public class test
{
public static void main()
{
compositionComputerBuilder buildA = new compositionComputerBuilderA() ;
direct directA = new direct(buildA) ;
directA.show() ;
compositionComputerBuilder buildB = new compositionComputerBuilderB() ;
direct directB = new direct(buildB) ;
directB.show() ;
}
}