Archive for June, 2014

用户空间的异常栈设计

June 7th, 2014

这个坑想了很久,但是一直没时间填,今天抽出一个周六,把之前的草稿完成!

我们知道在linux中如果用户程序发生错误,kernel会终止程序运行,并发出segment fault错误。
这种实现其实就是在用户空间实现了异常栈的操作。

下面我来说一下JOS的用户空间的异常栈设计。

» Read more: 用户空间的异常栈设计

策略模式及其拓展 C++实现

June 5th, 2014

策略模式形式上其实和装饰者模式,工厂模式都很像,装饰者模式是在原有核心的业务上添加新的业务,工厂模式是在构造函数中传入新类类名,然后返回新的类。而策略模式则是将策略类传入到执行类里,达到执行策略的目的!

工厂模式和策略模式有很多相通的地方。都是创造类。
不同点在于:工厂模式有可能各个类的方法名和个数差别很大,注重不同对象的创建。策略模式 一般用于多个类的方法名都相同,但是实现方式不同 注重多个对象的相同行为:屏蔽方法名相同,算法实现细节不同之间的差异
» Read more: 策略模式及其拓展 C++实现

装饰者模式 C++实现

June 3rd, 2014

装饰者模式就是在原来类的基础上添加额外的功能,这种方式主要是为了应对继承带来的的类膨胀。
装饰者模式比起继承更加灵活,一般来说,基类是抽象的Component还有一个具体的concreteComponent。这个模式的核心就是继承Component的Decorator类。,然后由Decorator类统一管理拓展的业务,也就是新增加的功能。

» Read more: 装饰者模式 C++实现