解释器(Interpreter)模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。如果某一特定领域的问题比较复杂,类似的模式不断重复出现,如果使用普通的编程方式来实现将面临非常频繁的变化。在这种情况下,将特定领域的问题表达为某种语法规则下的句子,然后构建一个解释器来解释这样的句子,从而达到解决问题的目的。
参考资料:【http://blog.163.com/lc-abcdefg/blog/static/19554211201062602518875/】

 

代理(Proxy)模式:对于复杂的软件系统常常有一种处理手法,即增加一层间接层,从而使得系统获得一种更为灵活、满足特定需求的解决方案。在面向对象的系统中,有些对象由于某种原因,比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等,直接访问会给使用者或者系统结构带来很多麻烦。Proxy设计模式就是在不失去透明操作对象的同时,通过增加一层间接层来管理、控制这些对象特有的复杂性。
三种常用的代理
1、远程(remote)访问代理(可能为了简化客户代码,也可能为了集中管理等);
2、虚拟(virtual,或称为重要对象)访问代理(可能是共享对象或大的,耗资源的对象,比如word中的超大显示图片);
3、保护(protection,或称为访问控制)代理,例如不同用户对对象有不同的操作权限等等。
参考资料:【http://lc-abcdefg.blog.163.com/blog/static/19554211201062602312307/】