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();
}
}
//图为输出结果
/**
* 工厂父类
* @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();
}
}
//图为输出结果
相关文章推荐
- Java实现顺时针输出螺旋二维数组的方法示例
- Java中如何通过代码知道某个方法或某个类是否在声明时被标注为deprecated?
- Java如何实现长图文生成的示例代码
- java语言基础|如何在main方法前执行其他代码
- java代码继承。。。找出不能继承父类方法的问题
- 如何实现多个线程同步 (2013-11-10 12:07:24)转载▼ 标签: it 在编写一个类时,如果该类中的代码可能运行于多线程环境下,那么就要考虑同步的问题,Java实现线程同步的方法很多
- 用简单工厂方法设计的数据库查询(JAVA代码实现)
- 简单完整的代码,通过这个代码你将对RSA加密算法在Java中的实现方法有一个初步的了解,这个类,你可以直接使用,水平高的,就自己修改完善下代码。
- Java编程实现获取当前代码行行号的方法示例
- Linux下Java 通过JNI native与C进行交互的方法实现示例
- java中如何让一个子类不能调用从父类继承的方法
- Java实现输出回环数(螺旋矩阵)的方法示例
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- 如何用Java实现邮件发送?---- 网站通过邮箱激活底层代码
- java通过封装编写Book类。要求:类具有属性书名、书号、主编、出版社、出版时间、页数、价格,其中页数不能少于200页,否则输出错误信息,并强制赋默认值200;为各属性设置赋值和取值方法;具有方法d
- 如何查看JAVA类库中的类的方法的具体实现代码
- Java如何实现可折叠Panel方法示例
- 如何在代码和xml中实现中划线的方法!
- Java Class 解析器实现方法示例
- .net数据持久化封装 -如何通过修改IL代码实现