定义:重复利用已有的知识、经验或软件制品来开发新的软件产品 好处:能够有效提高开发效率、降低开发成本、提高软件质量,并且缩短产品发布周期
目的:实现特定功能和特性 形式:软件组件(或称软件构件) 软件组件实现特定的功能并明确定义了API,软件开发人员可以通过API调用的方式复用相关的功能实现
按照可复用范围分为三类 一方库:当前项目内的通用功能模块 一般通过项目内的接口定义为项目中的多个模块提供共性的功能实现 二方库:同一企业内所积累的通用功能模块 一般建议封装成软件组件并提供API描述同时由专人进行维护和升级, 三方库:由开源社区或企业所提供的广泛授权使用的通用功能模块 一般都有规范的发布包和对应的API描述
【原来还有“一方”和二方“】
复用方法:软件开发库复用和在线服务复用
目的:获得支撑应用运行的整体性框架 形式:各种软件开发框架 在共性实现的基础上支持定制和扩展 定义并实现了面向特定类型应用或其局部(例如Web应用的前端、后端和数据库访问)的整体设计及共性部分 同时支持应用开发进行定制和扩展 与组件级复用的区别 组件级复用:应用代码通过调用组件的API实现复用 框架级复用:按照框架规范实现的应用代码被框架调用,经常会用类似于依赖注入的设计思想 常用开发框架:Vue.js(Web前端)、Spring Boot(Web后端) 、MyBatis(对象关系映射)
复用方法:调用,实例化,扩展
【这里是”模式级复用“吗】
软件组件 针对特定功能提供可复用的实现,开发人员在自身已有的实现方案基础上调用组件实现局部功能 设计模式 一种抽象的设计思想,往往体现为参考设计方案(如用UML图表示),本身并没有代码实现,需要针对具体问题、参考其设计思想进行实现 软件框架 本身包含相对完整的设计以及核心实现,提供扩展和定制能力,开发人员针对特定应用的实现通过扩展点插入框架中,一般由框架来调用形成完整的应用实现组件,设计模式和框架的区别
目的:不仅包括获得特定功能和特性的实现以及整体框架支持,还包括获得软件应用的部署和运行支撑
以小程序等形式支持应用开发、部署和运行 平台为应用开发提供了整体开发框架以及相应的开发规范 以服务的形式提供了身份认证、二维码扫描、用户管理、支付、消息发送等通用功能 为应用提供基于云的计算、存储和网络资源支持 应用可以以一种透明的方式实现云化部署和运维支撑,甚至平台还可以提供应用推广、收益分成等运营支持
典型代表是各种互联网应用开放平台,例如:微信 、支付宝 、WeLink 平台