观察者模式C++实现

June 10th, 2014 by JasonLe's Tech 1,164 views

观察者模式是非常重要的一个模式,初次遇到该模式,想了很久没有想通应该怎么做。

其实原理很简单:就是当被观察者(Observable)发生变化,然后就会某种数据方式通知(Notify)观察者(Observer),Notify的方式很多,比如我们将Observer 放到一个list或者set中,分别调用Observer的update()这样实现通知。
» Read more: 观察者模式C++实现

用户空间的异常栈设计

June 7th, 2014 by JasonLe's Tech 1,204 views

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

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

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

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

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

June 5th, 2014 by JasonLe's Tech 1,201 views

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

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

装饰者模式 C++实现

June 3rd, 2014 by JasonLe's Tech 1,090 views

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

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

命令模式 责任链模式 C++实现

May 22nd, 2014 by JasonLe's Tech 1,090 views

命令模式是一种高内聚的设计模式,这种模式主要有三类角色:
1.Receiver ———–就是实际要具体执行的具体函数
2.Commander ———-执行命令的操作在这里
3.Invoker ———-他是一个调用者的角色,接受Commander然后调用Receiver
这样使得调用方和执行方二者分离开来,实现了解耦。
» Read more: 命令模式 责任链模式 C++实现