软件各部分组件用什么样的结构好? 积木、层次、网状、树形,主体+插件各优缺点。
1.积木结构组件之间的关系太少。就像儿童积木玩具,一拍就散,不稳定。一般只用于理解系统结构,画画图可以。
2.层次简单容易实现。只有相邻层之间有关系,适应情况不多。
3.网状关系实现太复杂,一般都需要归纳简化关系,将组件之间的间接关系归纳简化。
4.树形关系,表示了组件的组成(包含)关系。一个组件只能属于一个父亲。
5.主体+插件这种模式将系统内部的关系集中到一个或者多个总线上管理,比较容易实现。组件之间的关系得到好的控制和管理。扩充比较容易,组件增加不会全部重构。
我倾向第5种:主体+插件,计算机硬件已经成功应用了这一模式。截止目前软件结构还没有清晰的使用“主体+插件”组织软件结构。
如果软件全部用代码实现,就不好形成有型的主体对象。但是在模型驱动方式的开发模式下,软件结构用模型来描述软件,这时才能比较容易实现主体+插件的结构。
分享到:
相关推荐
1. **独立发布,方便维护**:插件可以独立于GCC主体进行发布和维护,避免了过去使用补丁(patch)的方式来更新或扩展GCC功能的繁琐过程。例如,像gcc-xml这样的工具就可以通过这种方式更加便捷地更新和维护。 2. **...
插件可以视为独立的功能模块,允许开发者根据需求动态加载或卸载,而不会影响到系统的主体功能。以下是实现这一机制的关键点: 1. **插件的动态监听和加载(Lookup)**: 这个过程涉及到创建一个插件管理器类,...
在4.7.2版本中,它作为一个Google Chrome插件存在,为开发者提供了方便快捷的方式来发送HTTP请求并分析响应结果。 一、Postman简介 Postman是用于API开发和测试的集成工具,支持多种HTTP方法,如GET、POST、PUT、...
2. 插件主体函数:定义插件的核心功能,如$.fn.myPlugin = function(options)。 3. 参数处理:接受用户传递的配置选项,用于定制插件行为。 4. 插件内部逻辑:实现导航栏的展开、收缩、选中等效果。 5. 绑定事件:...
这可以通过传递参数给插件的构造函数或者使用提供的方法来实现。同时,为了提高性能和用户体验,插件可能会采用异步加载数据的策略,只在需要时才获取特定级别的城市列表。 总的来说,“city-picker”城市选择插件...
当支付方式经过充分的测试,确认无误后,可以将其发布到ECMall的插件市场,供其他用户下载使用。发布前,开发者应仔细检查支付方式的兼容性和安全性,确保其不会引入任何安全风险或性能瓶颈。 ### 附录 #### 5.1 ...
Vue.js进阶学习涵盖了多个方面,包括组件通信、数据响应式、插件使用以及源码分析等。在组件通信中,父子组件传值是核心话题之一。通过props我们可以从父组件向子组件传递数据,而子组件通过$emit可以触发父组件的...
游戏通过分析JAVA游戏开发和代码设计,用Eclipse软件开发了坦克大战游戏,运用接口技术,使一个类能够实现多个接口,使用套接字Socket来完成client端和server端的连接。玩家通过连接访问进入游戏,通过操纵坦克来...
1. **HTTP请求构造器**:用户可以直接在浏览器中构建和发送HTTP(S)请求,支持GET和POST方法,可以自定义请求头、参数和主体内容,这对于测试API接口或者模拟用户行为非常有用。 2. **代码执行**:Hackbar允许你在...
《jQuery实现的DsDialog对话框插件深度解析》 在Web开发中,对话框(Dialog)作为一种常用的交互元素,能够提供良好的用户体验,用于提示、确认、警告或展示详细信息等。jQuery作为一款强大的JavaScript库,提供了...
默认情况下,它将使用主体作为放置目标您可以将可选的options对象传递给构造函数 $ ( '.selector' ) . drag ( { target : '.drop-target' , 'setData' : 'Text' , 'effectAllowed' : 'copyMove' , start : function...
因为目前我们只是动态加载了插件的dex文件,插件的资源并没有引入,这样会造成插件的资源无法使用。为了解决插件资源加载的问 题,我们知道,安卓中资源的获取是通过getResouce()这个方法进行的,而这个方法返回的...
创建正则表达式有两种方式:一种是通过正则表达式字面量表示,另一种是通过构造函数RegExp创建。例如,用于检测输入文本中是否包含不合法字符的正则表达式模式可以表示为:`/(^|\s)不合法(\s|$)/ig`。其中,`^`表示...
在实际使用HLog时,用户首先需要将HLog-master压缩包解压,然后在BurpSuite中导入这个插件。导入后,可以在BurpSuite的界面中找到HLog的相关选项,设置自定义的Content-Type和Response Content。在进行内网测试时,...
【标签】中的“软件/插件”可能暗示课程中可能会涉及使用特定的视频编辑工具或文案写作辅助软件,这些工具或插件可能是提高工作效率和视频质量的关键。而“课程资源”明确了这是一系列的学习材料,包括但不限于视频...
3. 最后,执行派生类构造函数的主体部分,即构造函数体中的代码。这部分代码可以进一步初始化派生类特有的成员和执行其他业务逻辑。 理解这一执行顺序对编写多层继承和复杂结构的类至关重要,因为它决定了对象的...
本文介绍的是一款模仿C#中获取地址栏参数功能的jQuery插件,它使得开发者可以在JavaScript中以类似.NET的Request.QueryString["param"]的方式获取URL中的查询字符串参数。这个插件的功能非常实用,特别适合于需要在...
【描述】"Chrome API调试插件Talend API Tester" 指出该软件的主要功能和平台。Talend API Tester是一款强大的工具,它允许用户直接在Chrome浏览器中进行API的调试和测试工作。通过这款插件,用户可以发送各种HTTP...
如果需要在插件中使用$符号,可以通过闭包的方式安全使用,例如`(function($){})(jQuery);`这样的模式。 #### 5. 插件开发命名规范 当开发一个jQuery插件时,通常推荐的文件命名格式为`jquery.pluginname.js`。这样...