- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《LVOOP之适配器模式12
LVOOP之适配器模式 12/25/2009
0 Comment(s)
?
????? 适配器是常见的硬件概念,比如我们常用的USB转RS232适配器。我们之所以采用适配器,主要是由于以下原因:一、原有硬件设备已经存在,新的连接设备不存在和旧设备一致的接口。二、新的设备需要连接很多不同接口的设备,需要构建一个统一的接口。????? OOP适配器模式借用了硬件适配器的概念。软件的升级换代是非常常见的,对于已经成功运行的软件系统,我们在设计新的软件系统时,不可能完全放弃原有的软 件系统。但是经常遇到的情况是原有的软件系统和新的软件系统具有不同的理念,在考虑到扩展性的同时,必须兼容原有的软件系统,此时适配器模式是我们首选的设计模式。我们看一下适配器模式的定义:????? 适配器模式将一个类的接口转换成客户希望的另外一个类的接口。适配器模式使原本不兼容而不能一起工作的类可以一起工作。
????? 适配器模式并非特别的技术,其实质是在新的类中借用(翻译)原有类的动作和行为。在面向对象的编程中,当然是两个类之间的关系。对于LV来说,由于早期不存在LVOOP,因此适配器很少针对两个类,但是适配器模式的设计思想完全可以推广到面向过程和面向对象的混合编程中。下面我们通过一个绘图类说明如何使用适配器模式。????? 我们的目的是建立一套通用绘图程序类,包括点、线、圆等等,从图形的角度看,无论是点还是圆形,都存在很多共同点,比如绘图颜色、画笔等等,因此建立一个 形状的类作为基类是非常合适的,在基类的私有数据中存储公共特征,比如颜色和画笔,另外需要在基类中创建一个可重写的绘图函数,这样基类和继承的特殊形状 的子类都可以使用同一绘图函数,实现类的多态特性。
????? 我们创建一个形状类作为基类,形状类的私有数据包括画笔和颜色,并分别创建了私有数据的读写属性,形状类中,我们创建了可重写的绘制形状方法。属性的程序框图非常简单,就不贴图了。看一下形状类中可重写绘制形状的程序框图。
????? 在基类的绘图函数中,不执行任何实际绘图工作,具体绘图工作延迟到具体子类中实现。????? 我们知道,绘制一个圆需要圆的半径和圆心,其中圆心是一个点,因此我们创建一个点类,并将点类作为圆类的私有数据成员之一。
????? 在绘制圆类中,我们创建了一个静态方法,用来设置圆心和半径,其实这完全可以通过属性实现。由于属性只能设置单一私有数据的值,而采用方法则不受此限制。
????? 我们今天讨论的是适配器模式,假设在原来版本中已经存在类似的绘制圆的类,但是其属性和方法与我们新创建的不同,比如名称,参数顺序等等。由于原有类已经 应用于程序中,并在多处使用。如果直接使用新的绘制圆类,必然导致原有程序的多处修改,这不符合开放封闭原则。这种情况下,适配器方式就非常实用了。
????? 为了说明适配器模式,我创建了一个Circle类,表示原来存在的绘制圆类,简单起见,直接封装了LV的绘制圆函数,未执行任何其他操作。????? 回过头来,我们看看如何在新建的绘制圆类中,通过适配器方式,调用原有的CIRCLE类,来实现绘制圆的操作。
????? 上面的程序框图为绘制圆类中重写的绘制形状方法,在该方法中,建立一个原来的CIRCLE类的实例,并调用了CIRCLE中绘制圆的方法。????? 适配器模式是比较简单的,借助于适配器,可以充分利用原有结构。原有结构处于封闭状态,但是通过适配器后,改变了原有类的接口,这样就实现了开发的功能扩展。????? 适配器模式基本使用的是类的封装功能,对原有类进行进一步的封装,创建新的接口,使之融入到新的体系中。
?
LVOOP之建造者模式 12/18/2009
0 Comment(s)
?
????? 建造者模式是非常常用的设计模式,顾名思义,该模式主要一个对象。builder的意思是建造者或者建筑工人,想到建造者自然会想到楼房。楼房是千差万别 的,楼房的外形、层数、内部房间的数量、房间的装饰等等,但是对于建造者来说,抽象出来的建筑流程是确定的。建筑一座楼房,首先需要打桩、建立基础,然后 建立框架。建造者模式最为重要的是流程是不变的,每个流程实现的具体细节则是经常变化的。????? 建造者模式保证了流程不会变化,流程即不会增加、也不会遗漏或者产生流程次序错误,这是非常重要的。我们熟知的楼歪歪事件,官方的解释就是由于先建立楼房后,再建设停车场造成的,这是典型的建造次序错乱。????? 其实在编程实践中,建造者模式比比皆是。????? 比如文件操作,包括打开、读写文件和关闭三个步骤,无论是二进制文件、文本文件、TDMS 文件都必须遵循这个流程。其实、打开、读写、关闭并不仅限于文件,串口操作、
文档评论(0)