您的位置:首页 > 编程语言 > Java开发

java中,父类是抽象类不能通过工厂输出时,如何通过其他类实现输出的示例代码(工厂方法种类(1))

2013-04-15 19:00 1571 查看
package Builder;

/**

* 工厂父类

* @author L-Seven

*

*/

public abstract class Builder {

public abstract void BuilderA();

public abstract void BuilderB();

public abstract void BuilderC();

}

/**

* 子类BuilderA

* @author L-Seven

*

*/

class BuilderA extends Builder{

@Override

public void BuilderA() {

System.out.println("BuilderA-a");

}

@Override

public void BuilderB() {

System.out.println("BuilderA-b");

}

@Override

public void BuilderC() {

System.out.println("BuilderA-c");

}

}

/**

* 子类BuilderB

* @author L-Seven

*

*/

class BuilderB extends Builder{

@Override

public void BuilderA() {

System.out.println("BuilderB-a");

}

@Override

public void BuilderB() {

System.out.println("BuilderB-a");

}

@Override

public void BuilderC() {

System.out.println("BuilderB-a");

}

}

/**

* 选择

* @author L-Seven

*

*/

class Director{

private Builder builder = null;

public void setBuilder(char builderName){

this.builder = BuilderFactory.chooseBuilder(builderName);

}

public void show(){

this.builder.BuilderA();

this.builder.BuilderB();

this.builder.BuilderC();

}

}

/**

* Builder工厂

* @author L-Seven

*

*/

class BuilderFactory{

public static Builder chooseBuilder(char builderName){

switch (builderName) {

case 'a':

return new BuilderA();

case 'b':

return new BuilderB();

default:

return null;

}

}

}

/**

* 测试类

* @author L-Seven

*

*/

class Buildertest{

public static void main(String[] args) {

Director d = new Director();

d.setBuilder('a');

d.show();

}

}

//图为输出结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐