类、API、框架

本文探讨了软件复用的重要性,重点介绍了在类、API和框架层面如何设计可复用的软件实体。通过类的继承和委托实现复用,API设计强调简洁、灵活性和性能考量,而框架则分为白盒和黑盒,提供扩展点让开发者通过实现接口或插件来扩展功能。理解并掌握这些原则有助于提升软件的可维护性和效率。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

从类、API、框架三个层面学习如何设计可复用软件实体的具体技术 ,并撰写学习心得

一、 软件复用

软件复用是指在开发新的软件系统时,对已有的软件或软件模块重新使用,该软件可以是己经存在的软件,也可以是专门的可复用组件。软件可复用性的高低影响到生产效率的高低、软件质量的好坏和系统可维护性的好坏。

基于API的软件复用:
(1)实现某个函数的时候,函数的参数类型本来并没有见过,但通过智能感知提示我们能够了解到这个新 API 并正确取到参数中我们期望得到的信息。
(2)调用某个函数的时候,我们需要传入本来并没有见过的参数类型,通过智能感知提示,我们能够知道如何构造或获取这些类型然后正确传进去。
(3)调用完某个函数后我们得到了返回值,我们本来并没有见过这个类型,但通过智能感知提示,我们能够学习到这个新的类型,并知道如何正确使用这个返回值。

二、 类,API,框架

是是面向对象程序设计实现信息封装的基础。

类是一种用户定义的引用数据类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。类其实就是一种引用数据类型,它的本质是代表一种数据类型,是作为现实生活中一类具有共同特征事物的抽象,类的内部封装了属性和方法用于操作自身的成员,这些方法是对这个对象进行操作的程序和过程,类的构成包括成员属性和成员方法,从类出发的软件复用方式为继承和委托,继承就是通过新操作扩展基类或覆盖操作,委托则是捕获操作并将其发送给另一个对象,从类层面来说,有了继承,就可以使子类拥有父类的属性和方法,这也是一种复用,甚至可以说是十分重要的一种复用,子类可以不用将某些方法。而对于委托方法,在java中类直接调用这个类的static方法,类似c语言中的函数,直接调用就行,这样也是一种类的复用,类似的有Math.sprt()这种方法的调用与使用。

API:应用程序编程接口,库或框架的接口
客户端:使用API的代码 插件:定制框架的客户端代码
扩展点:框架内预留的“空白”,开发者开发出符合接口要求的代码(即插件),框架可调用,从而相当于开发者扩展了框架的功能
协议:API和客户端之间预期的交互顺序
回调:框架调用来访问定制功能的插件方法
生命周期方法:根据协议和插件状态按顺序调用的回调方法
建议:始终以开发API的标准面对任何开发任务;
面向“复用”编程而不是面向“应用”编程。
难度:要有足够良好的设计,一旦发布就无法再自由改变。

编写一个API需要考虑以下方面:

API应该做一件事,且做得很好 API应该尽可能小,但不能太小 Implementation不应该影响API 记录文档很重要 考虑性能后果
API必须与平台和平共存 类的设计:尽量减少可变性,遵循LSP原则 方法的设计:不要让客户做任何模块可以做的事情,及时报错

框架
框架分为白盒框架和黑盒框架。
白盒框架

通过子类化和重写方法进行扩展(使用继承); 通用设计模式:模板方法; 子类具有主要方法但对框架进行控制。

黑盒框架

通过实现插件接口进行扩展(使用组合/委派); 常用设计模式:Strategy, Observer ; 插件加载机制加载插件并对框架进行控制。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值