需求
《Clean Code》一书中有一章专门讲如何更好地使用第三方代码,当时没有什么体会,但最近的一个需求引发了我的思考。
事情是这样的,我们的系统中使用了一些jQueryUI里的控件,比如Dialog。
用了很长时间,也没什么问题,但昨天用户突然提出,这个Dialog能不能最大化?
查询文档后结论是不能,但有另一个插件叫WijDialog,扩展了jQueryUI的Dialog,提供了更多的功能。
使用方式也稍有不同:
$("#dialog").wijdialog();
问题
这时就出现一个问题,如果要将系统中所有的Diaglog替换成WijDialog,必然要改动很多代码,同时就将引入错误的机会放大了。
那么如何避免这个问题呢?
解决方案
我们都知道“面向接口编程”,也就是为了隔离变化,在不影响客户端代码的前提下我们就可以平滑地切换到另一种具体实现。
我们可以使用Adapter模式,增加一个自己的公共库,提供myDialog方法,在这个方法里去调用第三方的方法实现功能。
从而将具体的jQueryUI Dialog或者WijDialog隐藏起来,让客户端不知道它的存在。
这样我们就可以在任何时候平滑地切换第三方库了。
- 大小: 13.7 KB
分享到:
相关推荐
本文将深入探讨C# WinForm开发中使用的第三方控件及其优势。 首先,让我们了解什么是第三方控件。在C# WinForm开发中,标准控件如Button、Label、TextBox等由.NET Framework提供。然而,这些基础控件可能无法满足...
然而,有时我们可能无法获取到第三方DLL的源代码,这使得给这些DLL添加强名称变得颇具挑战性。本篇文章将详细解释如何在没有第三方源码的情况下,为第三方DLL添加强名称。 首先,我们需要理解强签名的过程。一个强...
《红米Note12 Pro(Ruby)第三方TWRP与Android 11-14兼容性详解》 红米Note12 Pro(型号为Ruby)是小米推出的一款中高端智能手机,以其良好的性价比受到广大用户的喜爱。本文将详细介绍如何在这款手机上安装第三方...
第三方编译通常指的是由社区开发者或独立程序员对原软件源代码进行修改和编译的版本。这些开发者可能增加了额外的功能、优化了性能或解决了官方版本中的一些问题。在本例中,这个第三方编译的飞信版本可能具有独特的...
总的来说,Delphi第三方组件为开发者提供了丰富的功能和无限可能,正确安装和使用这些组件可以显著提升开发效率和应用程序的质量。了解并掌握不同类型的安装方法,有助于更好地利用这些资源,进一步提升你的Delphi...
标题“一加8第三方TWRP-3.4.2B-fastboot模式刷写”涉及到的是为一加8手机安装第三方恢复系统TWRP的过程,其中TWRP是Team Win Recovery Project的缩写,它是一个自定义的Android设备恢复程序,提供更高级的功能,如...
在实际使用中,第三方控件可能会遇到一些问题,如版本更新导致的兼容性问题、API变动影响原有代码、控件自身bug等。因此,开发者需要定期检查更新,及时处理这些问题,并进行充分的测试以确保应用稳定性。 总的来说...
3. **了解风险**:安装第三方Recovery可能会导致设备保修失效,操作前请谨慎考虑。 #### 七、总结 通过以上介绍,我们可以看出自制第三方Recovery是一项相对复杂但也极具价值的技术活动。它不仅能让用户获得更多的...
3. **修改源码**:删除或注释掉限制第三方应用接收开机广播的代码,确保所有应用都有权接收开机广播。 4. **编译系统镜像**:修改后,需要重新编译系统镜像,这可能需要完整的Android构建环境和相关工具链。 5. **...
但根据标题“MFC的Picture控件中嵌入第三方exe”,这里涉及到一个特殊的应用场景,即在Picture控件中动态加载并执行一个第三方的EXE程序。 首先,我们需要理解这种操作的实现原理。通常,当我们将一个EXE文件嵌入到...
在iOS和Android平台上,许多开发者选择使用第三方类库来实现这种效果,因为原生SDK提供的组件可能不能满足所有设计需求或者需要更复杂的定制。本篇文章将详细介绍如何利用第三方类库来实现抽屉效果,并探讨其在实际...
刷第三方固件是一项高级操作,需要用户对路由器的硬件和软件有一定了解,同时也需要谨慎操作,以免导致设备无法正常工作。 再者,C和C++源码的提及暗示了这个工具包可能包含了固件开发的部分原始代码。对于想要深入...
要使用这些第三方元件,首先需要知道如何导入和管理它们。在Protues中,元件库是通过.LIB文件来存储的。在压缩包“Proteus第三方元件库”中,你可能会找到一系列这样的.LIB文件,每个文件代表一个或多个元件。解压后...
磊科NR 235和NR 236是两款常见的家用无线路由器,它们由深圳市磊科实业有限公司生产,主要用于提供家庭或小型办公室的...不过,使用这些第三方代码时需谨慎,确保其安全性和稳定性,避免对路由器的正常运行造成影响。
然而,Objective-C和Swift标准库中的正则表达式功能相对较弱,因此开发者常常会寻找第三方库来增强这方面的功能。本文将详细介绍一个在iOS开发中常用的正则表达式第三方库——RegexKitLite。 RegexKitLite是一个轻...
6. **代码质量与性能**:第三方插件虽然能增强功能,但也要注意其可能对项目性能和代码质量的影响。有些插件可能会引入额外的依赖,增加代码复杂性,因此在选择和使用插件时应谨慎评估。 7. **安全性与更新**:保持...
【小米MIX4第三方TWRP3.6.0刷写工具+详细教程】这篇教程主要涉及的是Android系统中的一款重要工具——Team Win Recovery Project(TWRP)的使用,特别是针对小米MIX4手机的第三方TWRP版本。TWRP是一款开源的恢复程序...
标题中的“第三方平台登录源码”指的是实现这种功能的原始代码,开发者可以通过这些源码学习如何集成第三方登录服务到自己的应用程序中。源码通常包含API调用、授权流程、令牌管理等关键部分,对于开发者来说是宝贵...
在Android应用开发中,侧滑菜单(SlidingMenu)是一种常见的设计模式,它允许用户通过从屏幕边缘向内...然而,需要注意的是,任何第三方库的使用都应当谨慎,确保其稳定性和维护情况,以及是否符合应用的整体设计风格。