对于面向复用的软件构造技术的的认识

        前面我们学习的ADT理论与OOP技术,但是这两方面的核心都是在保证我们代码的质量、与提高我们代码的安全性,而最近我们学习的面向复用的软件构造技术则是面向另一个外部指令指标——可复用性。

  首先复用大概可以分为四个阶段的复用。第一个阶段就是源代码级别的复用,而我们目前也已经达到了这个阶段,当我们对于编程中遇到的编程相关的问题又或者是某个算法的实现,我们可以在网络上找到相关代码进行copy。第二个阶段就是模块级别的复用,例如在某一个相关的应用中使用我们已经设计出来的类、抽象类或者接口,而在已经结束的实验二中,我也第一次达成了了模块级别的复用,在GraphPoet和Friendship都在一定程度上复用了前面设计好的Graph类。倒数第二个阶段就是库级别的复用,即API或者包的复用,我们现在接触到的就是引入第三方库Junit,帮助我们进行Junit测试。最后一个阶段也是最难实现的,即系统级别的复用:框架。

  最近几节课上老师向我们介绍了实现模块复用的一些方法。针对类的继承或者接口的实现,我们就要遵循LSP规则,对于LSP的一些相关判断,想不变量的强弱、对于前置条件后置条件的强化和弱化也有了更深的理解。,同时也学习了协变、逆变的相关概念。对于一些场景的相关引用的设计与编程,纵向上,通过接口、抽象类、稍具体一点的类往下,从抽象到具体;横向上,采取委派的策略,委派又可以分成临时性的委派、永久性的委派、比永久性更强的但难以变化的委派,比永久性弱一些可以动态变化的委派等。这些都是实现模块复用的一切方法。

  经过对上面这些内容的学习,对于ADT设计还有模块复用有了很多体会,但是实施起来一开始有种无从下手的感觉,但是相信经过课上一些实例的练习,再加上实验三的锻炼,相信后面会对与这方面有更加深刻的认识和领悟,同时也相信我的编程能力会上一个台阶。

posted @ 2022-05-30 20:57  cui-666  阅读(30)  评论(0)    收藏  举报