provide an interface for creating families of related or dependent objects without specifying their concrete classes
--Gamma, E., Helm, R., Johnson, R., Vlissides, J. Design Patterns: Elements of Reusable Object-Oriented Software, Boston: Addison-Wesley, 1995, p.87 讲白了,就是面向抽象接口编程,每一组对象都实现同一个接口
abstract class ResFactory {
abstract public DisplayDriver getDispDrvr();
abstract public PrintDriver getPrtDrvr();
}
class LowResFact extends ResFactory {
public DisplayDriver getDispDrvr() {
return new LRDD();
}
public PrintDriver getPrtDrvr() {
return new LRPD();
}
}
class HighResFact extends ResFactory {
public DisplayDriver getDispDrvr() {
return new HRDD();
}
public PrintDriver getPrtDrvr() {
return new HRPD();
}
}
比如说我需要一个显卡驱动和打印机驱动,高档机和低档机驱动都不一样,但我不想用很多switch来选择,这样很麻烦,而且扩展更麻烦。那我就定义一个抽象类,将我需要调用的资源全部放在里面,初始化类的时候我们可以先声明一个
ResFactory factory;
当我们需要使用高档机的时候就
factory=new HighResFact();
使用低档机的时候就
factory=new LowResFact();
这样,就可以很方便的调用自己想调用的对象,而且不用考虑有没有提供相应方法,在扩展和修改的时候更加方便,因为抽象和实现全部分开了,这也是我们在平常编程当中需要注意的。
---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2007-04-26 21:11
TiGERTiAN 阅读(1151)
评论(0) 编辑 收藏 所属分类:
Design Patterns