使用者,主要是通过创建者,创建然后完成设置值的操作;
清单 9. 寄生模式的创建者的实现实例
public class Create {
private String guiXML=null ;/* 界面描述文件 */
public boolean Switch;/* 开关量是否创建寄生对象 */
private GUIEngine ge;
public Create(String guifile,boolean open){
this .guixml=guifile;
this .Switch=open;
ge=new GUIEngine(this .guixml);
ge.createJDialog(null , "Hello Test").setModal(false );
ge.getCurrJD().setVisible(true );
}
/* 获取要设置值的控件对象 */
public JTextField getServiceObj(){
if (Switch){
UPSTypeHelper upshelp=
UPSTypeHelper.getInstance (ge, UPSTypeHelper.class );
return upshelp.txttest;
}else {
return (JTextField)ge.getComponentByName("txttest");
}
}
}
创建者,根据 open 这个开关量,决定是否创建寄生对象,如果不创建则调用宿主对象的自身方法使用,该代 码的执行结果如下图:
代码执行结果界面
显示设置成功。
本文 所描述的编码方式,简化了程序开发,而且对于大型的基于 Swing 的 GUI 应用开发可以大幅度的降低代码量,代码更清晰 易懂。本文重点在于面向对象编程中对象生命期的一种管理方式,是对现有的代码中不当的对象生命期管理方式的改进。一 旦了解,其实非常简单。
相比较与代理模式和工厂模式,对象的创建可以更灵活动态确定。对寄生对象做了改变, 这些改变只会传递到与其相关的系统对象而不会影响其余的系统对象。而且提供一种界面辅助操作可重用的方法。
¥29.00
¥498.00
¥299.00
¥399.00