领测软件测试网
软件测试技术网
\$\PD{5Ljf
Gubm3E lEu
-I4W3Kh}3bI*U清单 6. 工厂对 GUI 隐藏了实现细节
'x"L/pS`Q!u ]?O软件测试技术网 K'|*jri9ak4l'?6A
软件测试技术网0`i.Z&|Gpublic class WidgetDAOFactory {软件测试技术网:`R/B1SXp2N`X7O
public static WidgetDAO manufacture(){ 软件测试技术网;V8dI^$F
//..软件测试技术网&_K0{3~2cO
N!nz2V
}
8@\"\|"L*f}
]8[3ua] \'{
q1I
JZzG
?_g&aE\ mX使 GUI 引用对某个接口类型的数据检索可以为创建不同的实现提供灵活性。在这种情况下,部件信息保存在数据库中,因此可以创建一个 WidgetDAOImpl
类与数据库直接通信,如清单 7 所示:
f%b#pe]4ED-r
;II/f5bU"P8a0z
{
.p`{/P:s清单 7. WidgetDAO 类型的任务
IRO
rV+O7n4m9y`软件测试技术网'wJM,y
n0|m
0CfC%l I4^!D(~F
public class WidgetDAOImpl implements WidgetDAO {
public String getOrderStatus(String value) {
//...
}
}
|
软件测试技术网~3o+S7H/j{软件测试技术网?+EfnWR8SE+f
o'\&L![4o)Fq}注意,实现代码并未包含在这些例子中。这些代码并不重要,真正有价值的是原理。您不应该关心 WidgetDAOImpl
的 getOrderStatus()
方法是如何运作的。它可以从数据库或者从某个文件系统中获得状态信息,但重点是这不会对您产生什么影响!
bLU5|-|