废话一下:
连续2周周末没得休息,上上周找房,刚过去周末搬家淋到雨,人再一次挂掉。下午看了下医生,吃了药,便困到不行,在家倒头大睡,中间还接到房地产中介打来的电话T_T...
晚上吃完饭,感觉精神好了很多,便想了这几天发生的一些事。
上周六去师兄家,听他分享了 mirco kernel pattern(微核架构), 之前一年前就已经听他一直说mirco kernel这个模式,但是,网上的资料也还是有的。Microkernel(微核)模式,但是没有详细的范例。这个思想起源与操作系统。 我就更晕了,这些东西如果只是简单地知道 微核就是这么做,但是不能很好地了解是为什么要这样做,也就是这个模式的适用场景,那就是扯蛋。
简单说说,那天一些收获:
微核架构的核心原则,按个人的理解,应该就是 通过“核的存在” 最大程度的消除依赖 组件间的依赖, 这里消除到最后可能还存在一些 隐含依赖。 各个组件间的通过“核”来获取其他组件的服务(这一部分的实现是非常有意思且复杂的)。
简单的:
组件A可以通过调用“核”来获取B组件
Kernel.GetBObj();
同样的B也可以获取A组件
Kernel.GetAObj();
但是这样的话,A B 组件的依赖,还是互相依赖到了,且如果增加组件,Kernel的代码就必需变动,说到底还是不靠谱。
这个时候应该 让 各个组件都有一个唯一标识,就好办了。那么任何一个组件都可以如下面一样获取其他组件的服务
Kernel.GetServiceByID( keyID )
但最困难的无非还是 对组件接口的抽象。 linux 内核的 “文件操作接口”是最好的范例, 任何东西都是文件。
... 困了,仅记下。