文档章节

【SICP归纳】5 泛型运算符

NoMasp
 NoMasp
发布于 2015/09/08 21:51
字数 877
阅读 2
收藏 0

关于数据抽象,有两个很重要的思想。一是在构建一些水平的抽象障碍在这个系统中。用某些对象来代换这些单独使用的抽象屏障。二是当需要使用某种形式的数据对象时,往往可以由其他人来将其实现,而我们并不需要知道具体操作。这都是在数据抽象方面非常强大的编程方法。

但是这还不足以完成一个真正复杂的系统。在这里的问题出在“其他人”,作者常举的例子是Georges。归结来说,有很多人都工作在这个系统上,但所有的这些设计表达式很显然是不兼容的。问题是所有的整个系统却又不可能由一个人来完成,可又无法让所有的实现不能互相干扰。在以某种方式设计系统时,我们就不仅仅需要这些水平的障碍,还需要某种形式的垂直障碍,让这些实现方法分割开来。

那么该怎么做呢,一种方式是,每个人都得去改变自己的设计风格去迎合这个系统。也这是人们经常尝试却又永远无法高效工作的。(Lisp太多伟大的特性,让程序员更加有效的编程。这些理念并不新颖,Lisp几十年前就有了,但有多少其他语言能够做到呢。当然也并非其他语言一无是处,我只是和前辈们一样觉得学习SICP和Lisp能够变得更强大。)而另一种方式,则是以某种方式来进行安排,做一些垂直的抽象障碍。例如当被问到人事记录中的名字时,不论以何种可能出现的输出格式,最终都会得到一个正确的名字。这就比如当打开一个国际网站时,不论其中的过程如何,最终得到的网页都会是我们所需要的语言。同一个网站,可能有英文、简体中文、繁体中文、法文、德文等等,也许不同的程序员负责不同的语言以及不同的见面,但最终通过垂直的抽象屏障将其分离开来,所以我们并不会在一个网页中看到多种语言同时混杂在一起的界面。

更重要的是,如果要设计一个系统,以便下一次有新的部门被纳入公司时,他们不必在已经关于这个系统做好的系统中做些重大的改变,并且公司的其他部门也不必去做重大的改变来让新部门融入进来。这才是我们应该考虑的问题,而不是一股脑的去改变所有的已写好的代码和结构。也就是分布式的一个浅显示例了,3.4节的并发也是一个很重要的理念。书中第135页的类型塔很有意思,仿佛就像类的继承一般。



感谢访问,希望对您有所帮助。 欢迎关注或收藏、评论或点赞。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp

本文转载自:http://blog.csdn.net/nomasp/article/details/44569133

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
转] C# 泛型类型参数的约束

啊.紫原文C# 泛型类型参数的约束 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编...

橘子红了呐
2017/11/07
0
0
C#中“?”有三种用法

1、可空类型修饰符(?):引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空,例如:string str=null;是正确的。int i=null;编译器将报错。为了使值类型也可为空,可空类型...

51GT
2017/11/21
0
0
类型参数的约束(C# 编程指南)

定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的几种类型施加限制。 如果客户端代码尝试使用约束所不允许的类型来实例化类,则会产生编译时错误。 这些限制称为约束。 通过使...

whoisliang
2017/12/17
23
0
图书推荐:Kotlin从入门到进阶实战

《Kotlin从入门到进阶实战》从Kotlin 语言的基础语法讲起,逐步深入到Kotlin进阶实战,并在最后配合项目实战案例,重点介绍了使用Kotlin+Spring Boot进行服务端开发和使用Kotlin进行Android...

程序员诗人
2018/09/14
0
0
[基础] Java目录(摘自Java核心技术·卷1 基础知识)

Java核心技术·卷1 基础知识(原书第9版) 第1章 Java程序设计概述 1.1 Java程序设计平台 1.2 Java“白皮书”的关键术语 1.2.1 简单性 1.2.2 面向对象 1.2.3 网络技能 1.2.4 健壮性 1.2.5 安...

be-quiet
2015/03/08
395
0

没有更多内容

加载失败,请刷新页面

加载更多

100天搞定机器学习|Day55 最大熵模型

1、熵的定义 熵最早是一个物理学概念,由克劳修斯于1854年提出,它是描述事物无序性的参数,跟热力学第二定律的宏观方向性有关:在不加外力的情况下,总是往混乱状态改变。熵增是宇宙的基本定...

机器学习算法与Python实战
16分钟前
4
0
找子表

select a.constraint_name, a.table_name, b.constraint_name from user_constraints a, user_constraints b where a.constraint_type = 'R' and b.constraint_type = 'P' and a.r_constrain......

兵荒马乱的青春
18分钟前
4
0
Web应用安全如何防御或者检查漏洞?

     Web应用安全如何防御或者检查漏洞?这是大家一直关心的问题。随着计算机技术的发展,网络漏洞也变得越来越多样化了,你知道吗,每隔9 小时就会发布 1 个严重漏洞,并且有可能会进行远...

梅丽莎好
26分钟前
5
0
Vim 复制粘帖格式错乱问题的解决办法

有时候,复制文本(尤其是代码)到 Vim,会出现格式错乱的问题。看样子,应该是自动缩进惹得祸。本文不去深究原因,直接给出解决方法。 1. paste 模式 运行如下命令,进入 paste 模式: :set...

观海562
27分钟前
3
0
OSM初识(三)OSM Data

一 导出数据 将XML格式的OSM数据转换成另一种格式。 二 提取数据 剪切你选择区域内的数据,或者提取出特定区域特定的特征 三 数据格式 OSM文件仅属于OSM,不能用别的软件打开。其中后缀为bz2...

yuankaichao
36分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部