中介物原理的具体表述如下:
1)使用中间物体来传递或执行一个动作;
2)临时把初始物体和另一个容易移走的物体结合:
在日常生活中使用中介物的地方非常多,对于系统也是一样,在如下情况下时,我们可以利用中介物:
A)直接执行某个动作有危险(有害作用),则可以利用不怕这种危险的中介物来执行:
比如探险机器人,排雷机器人,服务员用托盘端菜,利用湿毛巾拿过热物等;
B)直接执行动作不能达成或很难达成目标,需要利用另一个物体:
比如利用竹竿晒衣服;用镊子夹取细小零件;计算机的远程过程调用中的中间通信对象,代理执行对象;利用拨子弹奏乐器等;
C)系统部件之间的两两相互作用太多,需要利用一个中介物来,来降低交换成本:
比如计算机的总线设计,社会生活中的集市等。计算软件设计模式中有一个专门的中介者模式,道理是一样;当然,软件设计模式中的代理模式在这里也属于中介物原理,不过软件的代理模式不属于当前这种情况。
D)如果一个系统(物体,子系统)对另外一个系统(物体,子系统)的功能执行不是很了解,可以建立专门的系统(物体,子系统)来代理执行来减少系统(物体,子系统)对目标系统(物体,子系统)的依赖,降低系统的学习成本,同时可以增加系统的灵活性:
这个在社会生产生活组织中非常普遍,代理报关公司,律师机构,代理注册公司等都是这种。前面讲得软件设计中的代理模式也属于这一类,通常中介物可以更专业,更低成本的与目标系统进行交互。
E)系统之间或者系统部件之间的通信或者相互作用(交互)开始不确定,则可以利用中介物来进行交互,减少系统设计的复杂度
这种设计例子非常多,其实前面的C可以视为这种情况的一种。软件中的消息队列,商场,集市,飞机场等。
F)为了增加某种灵活性,而不使得系统的设计过于复杂,也可以使用中介原理,使用一个临时的物体,系统或者部件来结合完成这种功能:
比如端菜的托盘,蓝牙耳机,吸管等。
中介物原理和系统分割原理相结合,可以使得设计更为灵活方便,比如将螺丝起子的柄和刀头分离,增加一个套筒设计,这样不同大小的刀头可以共用一个柄和套筒,大大节省了材料。
软件设计模式中的代理模式,工厂模式(一系列),中介者模式等都可以看着是这种中介物原理的应用。可以这么讲,软件设计模式中的绝大部分模式都是通过增加(引入)中介物来实现的,而这种设计理念,当然也可以用到工程领域中来。
其实人--工具--自然(社会),工具就是标准的中介物。
在方法论层面,领域间的差异其实非常小,相互借鉴和渗透非常自然,而不应局限于某个领域,特别是思维方式上。
??