在以往的文章中,我常提起聚合封装或者类似的词汇,其实这都是ace简化常见形式范畴中的将多个方法合并成一个方法。这尤其适用很多细节又容易落下的时候。
第一次接触初始化一个监听连接的soket恐怕会费一些记忆,二者这个流程一般是固定的,这最适合封装成一个方法供使用,因为这只是一个facade,这是非常显然的facade模式。
创建一个线程的参数也是需要一定记忆的,而多数时候我们实用的是特定的一个参数组合,这也属于ace封装考虑的问题,提供默认参数以适应大多数时候的使用,对于终端用户来说,他甚至不用知道太多,仅仅知道函数名字就可以正确使用有一大堆参数的方法是一件多么美妙的事情啊。
在这个放在封装思想下,还有显式化内在关联和封装功能函数两点。
因为ace着力于跨平台,而有些功能在不同平台是不一样的方法,为了得到统一的使用方式,ace对统一功能的方法进行了封装,提供了一个统一的facade。
显示化内在关联也是为了让程序员记住最少的事情就可以完成正确的事情。这是对类型增强安全性的一个特例、也是一个强化。其实关于这点,目前我的认知有限。我的理解是,对于socket、bind、listem、accept来说,他们隐式关联,都操作同一个socket,而由于隐式关联使用者可能会误用,为此把关联显式化,譬如bind必须接受一个socket产生的特定的socket,如此使用bind就不会忘记先使用socket生成bind需要的特定参数。