美文网首页
软件设计中的抽象

软件设计中的抽象

作者: zhizhuwang | 来源:发表于2016-08-08 17:20 被阅读756次

抽象是软件设计中的重要手段和方法,合理地使用抽象可以提升设计的简单性,改善软件开发的质量。通常在软件设计中使用到两种抽象方法,基于过程的抽象和基于数据的抽象。

过程抽象

基于过程做抽象时,会将待解决的问题分解为一个个小的子问题,每一个子问题分别由一个独立的模块、函数、类等来完成。这种分解策略不仅仅是把一个系统或模块拆分为一个一个的代码块,其意义在于分解出来的模块、函数或者类能够完成一个相对独立的功能,并且能够在其它的系统或模块中被重复引用。

在基于过程的抽象中,不同层次的过程在实现上相互独立;良好抽象的系统在其中某一个部分的实现被替换的情况下,不需要修改设计仍然能正常工作。同时,基于设计良好的抽象,我们可以通过组合的方式,构建出功能更加强大和复杂的系统。

数据抽象

相应地,在基于数据抽象的方法中,我们可以将复杂数据结构的使用和它的构造分离开来,通过使用“抽象数据”的方式,具体数据结构的用户可以通过明确定义的一系列接口对其进行访问和操作。

对于不同的问题,其解决的方式不同,选择的抽象方式也不同。选择合适的抽象方式可以使得软件的设计更加简单、合理。如果选择了不适合问题本质的抽象方式,不仅会影响软件设计的简单性,可能给软件的可维护性带来负面的影响。

数据抽象将数据对象的表示以及数据对象的使用分离开来,隐藏了所描述对象的内部特征,对于外部环境而言是透明的。而外部环境只有通过使用该对象所提供的操作来表现对象的动态特征。在定义具体的数据表示时,不用关心该数据被使用的方式,两者相互独立。
数据的定义和使用分别被称为选择器(selectors)和构造器(constructors),基于选择器和构造器,可以构造出一套新的适用于此领域的新的“语言”,提升业务代码开发中的概念层次。

更多内容,可以参考SICP

相关文章

  • 软件设计中的抽象

    抽象是软件设计中的重要手段和方法,合理地使用抽象可以提升设计的简单性,改善软件开发的质量。通常在软件设计中使用到两...

  • 关于软件设计

    软件设计的本质是抽象能力,包括: 把业务模型抽象为软件模型的能力。 把问题域抽象到软件域的能力。 软件设计的关键目...

  • iOS设计模式--抽象工厂

    抽象工厂与简单工厂最大的区别就是抽象工厂的工厂类也是抽象的。 在软件设计中,如果客户端想手工创建一个类的对象,那么...

  • 简单工厂,工厂方法,抽象工厂

    简单工厂,工厂方法,抽象工厂这三个是什么玩意?工厂都有新类型了?非也,非也。这是软件设计中的设计模式。何为设计模式...

  • 七大软件设计原则

    软件设计原则是比较抽象的概念,在设计模式中经常体现初设计原则的概念,但是设计模式中也会有取舍,可能部分体现了,也可...

  • iOS模板方法模式使用心得

    模板方法模式是面向对象软件设计中一种非常简单与经常使用的设计模式。它的核心思想是在抽象类的一个方法中定义某些“标准...

  • 设计模式——抽象工厂模式

    抽象工厂模式——软件设计模式 人类总称 各色人种 黄色女性人种 黄色男性人种 人类创建工厂接口 人类创造工厂 场景...

  • 软件设计原则讲解,昭昭在目

    一、UML 图 不要觉得奇怪为什么不讲软件设计原则而说到了 UML 图,因为软件设计原则和软件设计模式中你讲到最多...

  • 6 ASP .NET Core-依赖注入

    1 关于 DIP, IOC,DI DIP 依赖倒置原则:软件设计原则,高层和底层要依赖于抽象,不依赖具体实现。IO...

  • Java设计模式有哪些分类?

    软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977年美国著名建...

网友评论

      本文标题:软件设计中的抽象

      本文链接:https://www.haomeiwen.com/subject/rqvfsttx.html