分离:两难选择

原创 2004年07月29日 00:52:00

不知从何时起,我们学会了把“分离”作为一种处理事情的工具:复杂的事情被逐层分开,分别处理,自由地改变一个却不会影响另一个,这便是分离的优点所在。

在学习程序设计语言的时候,将一定的功能包装为一个函数,把函数对外作为一个黑箱,这就是一种分离:函数本身只需要考虑箱子里的东西和传进来的参数,感觉就像躲在一个相对狭小的空间中,需要考虑的只是这一部分的功能,不担心会影响空间以外的事物,自然更容易开发了。

而箱外的东西也不需要知道箱子里面是如何实现它要的功能的,只要知道那个功能确实被实现了,而且想要的值已经通过返回值返回来了便成。这样一来,一旦需要换个别的什么功能,只需要换个功能函数就行了,程序的主体结构却不必改变。

而在进行网页设计和 Web 应用程序开发的时候,我们也试图用一些方式来实现分离,其中的一种是模板。

熟悉 PHP 的人大概会知道许多 PHP 的程序并非将 PHP  与 HTML 混杂在一起书写,而是先写好一个网页的模板,再通过 PHP 替换模板中的特定字符串,最后将生成的数据返回。

因为这样可以分离表现程序用途的代码与表现网页外观的代码。你可以设计另一套模板,提供同样的预设字符串接口让 PHP 程序替换,再不改动程序的情况下,改变网页的外观,像著名的 PHP 论坛 phpBB 就是这么做的。

因为那部分模板的代码不含有任何动态的程序,它也就可以直接视作普通的 HTML,用任何 HTML 编辑器来编辑了。

而 PHP  程序中也少考虑了许多该把那段程序放在哪里以配合页面输出这样的问题,只需要知道并准备好“喂给”模板的数据就可以了。

所以我们可以认为模板方式限制了 PHP 输出的格式,使之在一个较小的功能范围内变化,我们需要考虑的问题减少了,设计起来自然就更方便了。

到现在,我们在推行运用 Web 标准进行网页设计,其中很重要的一点就是,实现内容与表现的分离,用语义化、结构化的标记,代替描述外观的标记来书写 HTML。

这样所有的表现风格都可以用层叠式样式表 (CSS) 来设计,不同的样式表,只要针对同一份 HTML 的结构设计,就可以任意替换,让页面随时改变风格了。

同时语义化的标记还能让残障人士使用的用户代理都能看懂并清楚应该如何以自己的方式解释这篇文档,这是混杂表现与内容时绝对做不到的。

这一切是多么的美好啊,可还是有不如人意的地方。

pgpool + postgres 读写分离配置(1)

1. 检查PostgreSQL 是否已经安装    rpm -qa|grep postgres    如果rpm安装的用以下方式卸载:    用 rpm -ev 命令卸载     ...
  • czp11210
  • czp11210
  • 2015年02月04日 14:36
  • 1530

MySQL引擎---读写分离对不同引擎的选择

MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型IN...
  • u010235716
  • u010235716
  • 2016年06月13日 11:13
  • 1586

OpenCV-颜色通道的分离、合并

OpenCV-颜色通道的分离、合并author@jason_ql http://blog.csdn.net/lql0716 OpenCV-颜色通道的分离、合并 颜色通道的分离:split() c...
  • lql0716
  • lql0716
  • 2017年02月16日 14:08
  • 1802

离散数学:构造性二难推理和破坏性二难定理的解释

二难推理是由两个假言判断和一个有两个选言支持的选言判断做前提构成的推理。假言选言推理的主要形式。其结论可以是直言判断,也可以是选言判断。因为这种推理有时反映左右为难的困境,故称。 构造性二难...
  • liuchuo
  • liuchuo
  • 2016年07月22日 13:46
  • 2127

ACM还是网络技术,两难取舍

【来信】  贺老师,您好,看了您的一些博客之后深有感触,觉得自己的努力相对别人来说还是不够,最近,我也遇上了一些事,感到有些迷茫,首先做一下简单的自我介绍,我是一名普通的二本学生,学的是网络工程专业,...
  • sxhelijian
  • sxhelijian
  • 2014年03月22日 22:12
  • 2631

程序员的两难抉择

//不想看我废话的请直接看后面的红色字体,希望高手能根据我的实际情况为我指点迷津。 我是那种后知后觉、算是上进的人,因为缺乏规划和执行力,没有把自己的路走好。如今,我一直在反思。        2...
  • xl19900502
  • xl19900502
  • 2014年07月29日 00:55
  • 2649

matlab 声道分离合并与组合

立体声或双声道音频信号有左右两个声道 利用 MATLAB 实现双声道分离  两路声道合并和两个单声道组合成一个双声道等效果  实际上是利用了MATLAB 的矩阵抽取  矩阵相加和矩阵重组运算 ...
  • miao0967020148
  • miao0967020148
  • 2017年02月07日 09:58
  • 2451

【C语言】PCM音频数据处理---左右声道分离

我用一麦克风录制的PCM数据是16bit,双声道的,用Audacity工具查看可知,右声道是没有声音的,左声道才有声音,如下图所示 所以为了节省存储空间,完全可以将左右声道分离出来,左右声道分离的方...
  • Timsley
  • Timsley
  • 2016年02月17日 22:32
  • 3845

两难问题,贬值还是升值

如果现在的产能过剩是效率的极大提高,人民币保持现有的汇率或者升值都是没有问题的,因为产能的过剩如果是因为效率的极大提高产生的,就表示我们的产能成本很低,是极具竞争力的,因此我们可以通过降低价格达到输出...
  • hawksoft
  • hawksoft
  • 2016年02月10日 08:56
  • 2725

线程分离状态的理解

在任何一个时间点上,线程是可结合的(joinable),或者是分离的(detached)。一个可结合的线程能够被其他线程收回其资源和杀死;在被其他线程回收之前,它的存储器资源(如栈)是不释放的。相反,...
  • jobbofhe
  • jobbofhe
  • 2016年08月19日 17:14
  • 2002
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:分离:两难选择
举报原因:
原因补充:

(最多只允许输入30个字)