文章分类 - IT/SoftEngine/Pattern
摘要:为什么要学习设计模式呢? 有句话说得很好:遵循一定的编程模式,才能使自己的代码便于理解,易于交流;一切都是为了交流,其实要写出一个具备一定功能的代码是很容易的,但是我们写程序除了能够让他工作以外,还要便于日后的维护,而维护就涉及到读程序,那么就涉及到程序的可读性问题,而成需要方便维护人员阅读,就得有一定的标准,模式就是这众多的标准之一,按照一定的模式来设计程序,便于理解。 模式存在的事实基础在于:...
阅读全文
摘要:该模式其实也比较简单,但是一直没有用过,所有有些陌生,反反复复看过很多遍了。其实看到这个模式总是让我想起在c里头的函数指针,在数据结构的c版本中,经常会遇到把函数作为一个参数传入到另外一个函数的情况,特别是在那些图的遍历的方法中。 访问者模式就有点类似于这样一种情形; 在这里有访问者 和 被访问者 ,被访问者往往不止一个,访问者也不止一个,如此一来,多个被访问者有一个共同的父类,多个访问者也...
阅读全文
摘要:装饰者和被装饰者有着共同的父类,当要对一个对象进行装饰的时候,就把这个对象传递给装饰者,然后调用装饰者中和被装饰者相同的那个接口即可;有点值得提示的是:DECORATOR模式是可以递归调用的,也就是加入有两个装饰者和一个被装饰者,那么首先创建一个被装饰者对象,把它传递给装饰者1,然后再把装饰者1传递给装饰者2,那么这个被装饰者就被装饰了两次;这种装饰是可以在运行的时候动态的绑定。 代理模式则和...
阅读全文
摘要:实际上是一个名称误用。更准确地说,观察者向主体注册,表明它观察主体的意愿。 观察者模式的三个主要步骤是:注册、通知和撤消注册 一般来说,观察者不止一个,所以主体需要用容器来存储,这样就可以允许存储多个,当有事件发生时,就从容器中取出各个观察者,逐一通知他们。 一般来说,主体会有两个方法:registerunreister以便用来注册观察者; 而观察者则一般有一个名为notify的方法,以便给主体调...
阅读全文
摘要:为什么需要备忘录模式,我想这个模式名字已经把自己诠释的很清楚了,就是为了备忘;下面这个例子说得也不错:同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。 其实备忘录就是为了把原发器中的一些重要状态保存起来,在需要的时候恢复原发器的这些状态; 在备忘录模式中主要...
阅读全文
摘要:享元模式的例子有很多,下面介绍几个:1、文本处理软件中文字对象的处理就采用了享元模式;2、对象池,如session pool,conection pool,Object pooling;在所谓的对象池中,在用享元模式的同时往往业旁随着singleton模式;而且也伴随着应用工厂方法;工厂对象等等; 在程序的一开始,创建一个工厂对象,在工厂对象中有一个享元对象的列表,在工厂对象创建的时候同时就把这...
阅读全文
摘要:Null Object 模式 这个是前几天才看的,在《从重构到模式》和《重构》都有见到过,我其实到现在也就似是而非的用过一次。下面着重描述一下该场景: 上个月在设计那个cdt子站端驱动,该驱动主要就是循环向串口发送数据,同时还要接收远端通过串口发送过来的命令,由于命令的种类很多,根据每个命令的帧类别和功能码来识别命令,每个命令根据参数的不同会有一些不同的操作,如果按照传统的过程...
阅读全文