Facade模式的意图是:为了子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
AutoCAD的ObjectARX库为我们提供了一组完善的API和类,我们可以使用这个来搭建任意的AutoCAD二次开发应用。但很多时候,我们希望能够简化一下代码,Facade模式可以帮助我们构建应用。
关于图层的操作是非常常用的:判断图层是否存在,创建新图层,打开图层,关闭图层,冻结图层,保护图层,等等等等,这些操作用ObjectARX需要写上十几行代码,但由于系统中往往频繁出现类似操作,因此,我喜欢把关于图层的操作都封装在一个CLayerCtrl类里面,类方法包括createLayer,isLayerExist,isLayerOff,getLayerStatus,setLayerStatus,setLayerColor,setLayerLineType等等一堆函数,便于调用起见,都做成了静态成员函数,可以说,这是一种Facade模式的应用。