程序员

首页 » 常识 » 常识 » 架构师成长之路什么是软件框架框架和设计模
TUhjnbcbe - 2024/4/6 0:35:00

前面,已经把概要设计阶段要完成的任务和方法做了基本的讲述。

接下来看看如何做基础框架设计,在讲之前,我们先来统一一下对软件框架的认识;然后去理解框架和设计模式的关系,为后续的讲解做好准备。

一:什么是软件框架

1:框架是什么

框架是能完成一定功能的半成品软件。

来理解一下这句话:框架是软件,也就是说,框架不再是一个思想上的产物,而是一个已经落地实现,真实可用的软件。

框架是一个什么样的软件呢?是一个半成品软件。也就是说,框架的本质目的不是直接面对最终用户,不是为了给最终用户提供直接可用的产品或功能,而是一个半成品,框架面对的用户其实是开发人员,开发人员来使用框架,在框架这个半成品基础之上,去完成最终用户需要的功能。

2:框架能干什么

至少有两个大方面的作用:

(1)能完成一定功能,从而加快程序开发进度

框架是一个半成品软件,是能实现一定功能的。我们选用这个框架,就是因为我们要使用这个框架提供的部分或全部的功能。

如果没有框架,全部需要我们自己从头实现,工作量比较大,那有了框架过后,框架已经实现的部分功能,就不需要再重新做了,减少了开发的工作量,自然就加快了程序开发的进度。

(2)给我们一个精良的程序架构

一般来说,框架设计是比较精巧的,是经过长时间的实践、积累、沉淀、优化、重构而得到的。

在使用框架的时候,通常需要遵循框架的一些约定,这样无形当中,就按照框架的要求来实现程序结构了。

3:框架的理解

(1)也就是:使用框架,事情还是那些事情,只是看谁做的问题

看上图左边部分,没有框架的时候,我们可以自己来实现所有的功能,工作量会比较大,但也能实现。

在看上图右边部分,有了框架过后,还是做同样的事情,但是,我们不用从头来做了,框架已经帮我们完成了一部分功能,我们只需要在框架的基础之上,把剩下的功能完成即可。

也就是说,框架是用来辅助我们去完成任务的,有了框架过后,我们可以做的更少,而质量反而会更好,毕竟框架都是千锤百炼,经过了很多积累、沉淀、优化才得到的。

2:使用框架,可以不去做框架所做的事情,但是不可以不懂框架在干什么,以及框架如何实现的

在实际工作中,框架和我们实现的功能,分得特别清楚,泾渭分明,通常只是一种理想情况,实际的情况是,我们的实现和框架提供的功能,经常是交织在一起的,犬齿交互,是融合的这么一个状态。

如同上图,大长方块代表最终要完成的功能,蓝色代表我们要实现的功能,所以,要完成实际的功能,可能的情况就是:我们做一部分,框架做一部分,然后我们再做一部分,然后框架再做一部分,最后我们再做一部分,终于完成了实际的功能。

这就要求我们,即使我们不去做框架所做的事情,但是不可以不懂框架在干什么,以及框架如何实现的,否则我们对程序就失控了,加入把框架抽走,我们自己实现的部分就是完全孤立的了。

我们只有深入理解了框架做了什么,以及做的思路过后,我们才能把整个思路联通,才能真正掌控整个应用,对于架构师尤其如此,一个不能掌控整个应用的架构师,不是一个合格的架构师。

二:框架和设计模式的关系

框架已经是落地实现的软件,是要完成一定的功能的,那么设计模式就是一个绕不开的坎。

设计模式是无数前辈们好的实践经验的总结,在开发过程中,一定要尽可能的去应用这些,已经被反复证明是优秀的解决方案。

框架在实现的时候,也一定会涉及到很多设计模式的应用,那么,框架和设计模式到底是什么关系呢?

1:设计模式比框架更抽象

设计模式是经验,是解决方案,是思想层面的;而框架是软件,已经是用代码实现出来的软件,而设计模式只有其实例才能表示为代码。

框架的威力在于它们能够使用程序设计语言写出来,它们不仅能被学习,也能被直接执行和复用。

2:设计模式是比框架更小的体系结构元素

框架实现了很多功能,而一个功能的实现,里面又可能使用了一种或多种设计模式。

因此,一个典型的框架包括了多个设计模式,而反之决非如此。

3:框架比设计模式更加特例化

框架是一个软件,总是针对一个特定的应用领域,而设计模式更加注重从思想上,从方法上来解决问题,更加通用化。

有关于框架相关的知识和理解,就先聊到这里。对于一个架构师而言,还是需要正确的、合理的理解这些概念和思想。

如果你觉得本系列文章还不错,能够给你一些启发和思考的话,请

1
查看完整版本: 架构师成长之路什么是软件框架框架和设计模