抽象

作者: Rim99 | 来源:发表于2016-03-28 19:45 被阅读34次

设计程序时,会经常发现很多代码都是大同小异的。为了让程序更简洁,也便于代码的修改,实现代码复用是非常重要的。

将代码段的重复部分提取出来,差异部分作为新函数的参数。这个过程就称作抽象,根据程序代码的实际用途,也可以分为函数抽象数据抽象

如何设计抽象

  1. 寻找代码的相似之处。
  2. 对相似度足够高的代码,把相同的部分提取出来作为新函数。然后标出其中的不同之处,再将这些不同列作参数,并根据这些参数调整新函数。
  3. 编写函数的说明。
  4. 测试新函数。

这是函数抽象的步骤,数据抽象也是类似。

如何使用抽象

  1. 根据实际问题,写出函数的函数签名,目标陈述,函数存根,测试样本。

    ... distill the problem statement into a signature, a purpose statement, an example, and a stub definition.

  2. 找出匹配的抽象。匹配的意思是,该抽象的目标陈述囊括了目标函数(more general),而且签名相类似,

  3. 写出函数模版。

  4. 设计新函数内部的局部辅助函数。DrRacket里需要用到local表达式.

  5. 测试。

关于Python中的抽象

Python和DrRacket有很大的不同。

以上只是理论,具体操作可以看Composing Programs

相关文章

  • 抽象抽象再抽象

    抽象 继承 单一原则 面向扩展开放,面向修改关闭 控制反转,依赖注入 里氏替换原则 单一职责原则开放封闭原则里氏替...

  • 抽象类、抽象字段、抽象方法

    结果:Teaching!!!teacher.id:80085693Spark:29

  • 抽象类与接口

    抽象方法和抽象类特点 抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义为抽象类,抽象...

  • 抽象类、接口、内部类总结

    抽象方法与抽象类 抽象方法与抽象类必须使用abstract修饰,有抽象方法的类只能被定义为抽象类,抽象类里可以没有...

  • 25.面向对象(抽象类. 多态)

    面向对象(抽象类. 多态) 一. 抽象类 抽象类不能实例化 继承抽象类的子类必须将抽象类中所有的抽象方法重写 抽象...

  • 抽象

    说实话,来北京后对挺多东西都有了新认识,比如‘抽象’这个词。 以前对‘抽象’没什么概念,甚至觉得它像个贬义...

  • 抽象

  • 抽象

    今天玩一下抽象

  • 抽象

    抽象是隐藏实现细节并仅向用户显示功能的过程。Java中有2种方式可实现抽象: 抽象类(0到100%的抽象) 接口(...

  • 抽象

    你不知道太阳会不会没有阴暗 它把阴霾用黑夜隐藏; 你不知道月亮会不会停止发光 它将缝隙用丝缕透射; 你不知道, 就...

网友评论

      本文标题:抽象

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