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

Java设计模式-----Abstract Factory抽象工厂模式

2008-06-06 10:05 549 查看
源自:http://www.blogjava.net/flustar/archive/2007/11/28/abstractFactory.html

Abstract Factory抽象工厂模式:

为创建一组相关或相互依赖的对象提供一个接口,而且无需指定它们的具体类。大致意思是说:我们在创建这些对象的时候,并不需要指定它们的具体类,这些具体类的对象是由工厂对象负责实例化的。

例子:

public abstract class DisplayDriver {
}

public abstract class PrintDriver {
}

public class HRDD extends DisplayDriver {

public HRDD() {
System.out.println("使用高端机的显示驱动程序");
}
}

public class HRPD extends PrintDriver {

public HRPD() {
System.out.println("使用高端机的打印驱动程序");
}
}

public class LRDD extends DisplayDriver {

public LRDD() {
System.out.println("使用低端机的显示驱动程序");
}
}

public class LRPD extends PrintDriver {

public LRPD() {
System.out.println("使用低端机的打印驱动程序");
}
}

public abstract class ResFactory {

abstract public DisplayDriver getDisplayDrvr();

abstract public PrintDriver getPrintDrvr();
}

public class HighResFact extends ResFactory {

public DisplayDriver getDisplayDrvr() {
return new HRDD();
}

public PrintDriver getPrintDrvr() {
return new HRPD();
}
}

public class LowResFact extends ResFactory {

public DisplayDriver getDisplayDrvr() {
return new LRDD();
}

public PrintDriver getPrintDrvr() {
return new LRPD();
}
}

public class ApControl {

public static ResFactory getResFactory(ResFactory factory) {
return factory;
}

public static void main(String[] args) {

ResFactory highResFact = ApControl.getResFactory(new HighResFact());
highResFact.getDisplayDrvr();
highResFact.getPrintDrvr();
ResFactory lowResFact = ApControl.getResFactory(new LowResFact());
lowResFact.getDisplayDrvr();
lowResFact.getPrintDrvr();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: