在软件设计中,为了很多很多种理由,需要保证对于一样东西,只有一份实现,它是保证高质量软件的一个基本条件.然后再在这一份实现的基础上,加上各种各样的适配,以适应各种各样的需求.打个比方,文档原始数据只有一分,经过不同的表现层,可以展示各种各样的外观给用户看,如网页形式,音乐形式等等;任务的实现只有一种,但是经过不同的封装与管理,就可以以内核态线程,用户态线程,还有进程,甚至连线程又分为posix线程,linux线程甚至其它的next-generation的线程提供给用户使用.当然了,设计模式上adapter模式也一个典型的应用.在软件设计与实现中,如果为每一个实用场景都做一份实现,那首先累都累死掉不说,维护起来肯定也麻烦到不行.
作为人类个体来说,也是一样.拿呼吸来讲,如果我们需要为陆地,浅水,深水,太空每种情况制造一种呼吸体系,根据环境选择最有效率的呼吸体系来使用,这听起来固然美好,但这样一来,人体就不得不长上许许多多的呼吸系统了.如果考虑到其它功能,包括行走,视界啊,那人身上不得叮叮当当的,多麻烦啊.所以聪明的进化之神就让我们只需要长一个系统,然后通过仿生来进行功能的扩展,以适应不同的需求.我们只需要象现在这样,能走,走吃,能看,再借助工具,就可以潜水,可以坐飞机上天,还可以借助望远镜与看到几百万光年外的星系.
就连仿生也是一样的,针对具体不同的应用,实现也不一样,浮潜只需要呼吸管与面罩,要下水,就需要带氧气瓶了,再往下,就得用上潜水艇,要到深海,如马里亚纳海沟,还得用上特别的钢球才行.如果我们制造一个大而全的工具,能够应付我们现在能够借助工具能就会的所有问题,那得造个什么玩意出来啊?
在软件的设计与实现中,我们知道,系统越简单(这里的简单不是功能少,或者不好用之类的说法,而是软件设计导致其架构简单),就越可靠.就象人类现在这样,借助仿生技术,不断加大自己对于环境的适应度,又不至于给自己的身体加上太多的负担,这多好啊.