软件设计:对象的生命周期

    作者:a-leon更新于: 2020-04-13 11:58:07

      生命周期法也称结构化系统开发方法,是国内外较流行的信息系统开发方法,在系统开发中得到了广泛的应用和推广,尤其在开发复杂的大系统时,显示了无比的优越性。它也是迄今为止开发方法中应用最普遍最成熟的一种。

      在解释“对象的生命周期”前,先来看下面这个例子:

      有一个停车场共50个停车位,假如这个停车场是通过人工来管理停车位的使用情况,管理员有一个计数器,用来计录当前空闲的停车位有多少个,每当有新的停车位被使用了计数器就减1,而有新的停车位空闲了计数器就加1。

      我们可以把这些停车位理解为【资源空间】,可支配的最大资源数为50(即停车位数量),记录资源使用情况的管理员可理解为资源的观察者(每当资源发生变化就对停车位进行计数)。

      那么会存在有这样的场景,50个停车位都被使用了,如果有新来的车,那么就不允许进入停车场。这种场景可以理解为资源不足。

      而计算机中的【内存】也跟【停车场】差不多,我们通常说的内存有4G、8G、16G等,那么该内存最多能够存储的数据量就是4G、8G、16G等,如果当前内存使用情况已达到瓶颈的话,运行的程序就会出现故障。

      当内存使用达到瓶颈时,运行的程序为什么会出现故障?

      因为计算机在运行一个程序的时候,会把要用到的数据先写入内存空间。当内存不足时,程序就无法继续对数据在内存上进行操作,此时就会导致程序故障。更具体的一些知识点,朋友们可以去查阅相关资料:程序是如何被计算机所执行的,本文不做讨论研究,因为这个问题本身就有很多可讨论的知识点。

      上面解释到,计算机在运行一个程序的时候,会把要用到的数据先写入内存空间。这就相当于某些停车位被使用了(即资源空间被使用),而在内存中的表现就是占用了一块内存空间。但是内存的空间大小是有限的,那么在程序中什么时候会占用内存空间?并且有没有类似停车位的管理员一样的角色,来观察程序的相关使用情况呢?

      先思考下程序中类的概念,虽然我们可以用“类”将生活中的各种事物进行抽象化来在程序中进行描述。但是“类”不能代表一个具体的东西,而这个具体的东西是以“对象”来表达,那么我们要想在程序中得到这个具体的“对象”则是需要【创建类的实例】来获取,这也就认证了前面文章所说的“类的具体实例就叫做对象”。那么这个“创建类的实例”也就是一个具体的【对象】诞生了,此时会在内存中占用一块空间。当这个具体的【对象】不再被使用后(相当于车离开了停车场,不需要使用停车位了),那么在程序中会有一个叫GC(垃圾回收机制)的东西来负责管理对象使用情况,类似停车场的管理员,职责就是:观察不再被使用的具体【对象】有哪些,然后将其销毁,腾出内存空间。GC(垃圾回收机制)管理对象的使用情况的详细说明本文暂不作讨论。

      那么现在回到“生命周期”这个词,对于人来说就是从出生到死亡的一个过程。

      所以在程序中,一个“对象的生命周期”就是指:对象的创建到使用结束后被销毁的一个过程。

      生命周期法的突出优点是强调系统开发过程的整体性和全局性,强调在整体优化的前提下考虑具体的分析设计问题,即自顶向下的观点。它从时间角度把软件开发和维护分解为若干阶段,每个阶段有各自相对独立的任务和目标。降低了系统开发的复杂性,提高了可操作性。另外,每个阶段都对该阶段的成果进行严格的审批,发现问题及时反馈和纠正,保证了软件质量,特别是提高了软件的可维护性。实践证明,生命周期法大大提高了软件开发的成功率。

课课家教育

未登录