什么是软件架构

  什么是软件架构,很多书上都有很多定义,或者有人说没有统一的定义,可是没有定义的东西理解起来就比较困难了,因此,我还是希望给个定义。

  软件架构到底是什么,在软件设计过程中,设计师会花费很大一部分精力去追求建造一个灵活的架构,目的是为了这个架构能够尽可能的稳定,不会因为硬件,软件,需求等外界变化导致架构不能满足从而需要改动,而架构的改动可以说是伤筋动骨,通常很难。

  保持架构的稳定,也就是使架构能够尽量被复用,是架构设计的重要一环。而面向对象的很多模式,除了用来解决功能和性能问题外,很大一部分是通过引入间接层,将预期会发生变化的部分与认为相对稳定的部分隔离开来,这是目前看来,保证软件中的某一部分稳定的有效方法。

  因此可以这样定义,架构是由系统设计中那些预期不变的内容组成的一个相互协作的系统,它为那些预期变化的部分预留了接口。

  架构可以是分层的,按照变化的预期,可以分成多层,越是靠近核心层,越是稳定。

  事物的本质是稳定的,通常不会发生质变,因此,抽象作为设计手段专门用来抽取事物本质。定义如下:

  抽象,就是从众多事物中抽取出共同的,本质的特征,而舍弃非本质的特征。

  如此说来,设计似乎简单了,找到本质就行了,然而,事情不是如此简单,事物的本质是多维的,是多层的。多维也就是说可以有多个方向,多层是说每个方向有一定的深度。

  例如:苹果,梨,香蕉

  如果上来没有任何交代,我们来抽象上述3个东西,结果会有很多。

  多维:能吃,能够种植,有皮

  多层:水果,植物,生物,物体

  那么到底应该抽象出什么本质特征来,还是要看需求,因此抽象是有目标的,抽象的目标是需求决定的。抽象的目的是将众多事物的共同特征抽取出来,进行统一的处理,以便复用该处理过程。

posted @ 2022-05-05 08:00  Gazikel  阅读(48)  评论(0编辑  收藏  举报