享元模式
定义
运用共享技术有效地支持大量细粒度的对象。
我的理解
如果实例之间只有几个参数有不同,那么抽出大量的一致的东西,作为享元
例子
各个博客之间,只有名字不同,其余基本相同
应用场景
如果一个应用程序使用了大量的对象,而大量的这些对象造成了很大的存储开销时,就应该考虑使用;还有就是对象的大多数状态可以外部状态,如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象,此时可以考虑使用享元模式。
解释器模式
定义
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
我的理解
将一个问题编写成一个句子,然后写一个解释器来解释它
例子
将一串音符解释成可播放的音乐
应用场景
当有一个语言需要解释执行,并且你可以将该语言中的句子表示为一个抽象语法树时,可食用解释器模式。
模式
定义
表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
我的理解
将处理与数据结构分离
例子
数据结构是男人和女人,操作有很多,如果想要加一个结婚的操作,在访问者模式下就只需要添加一个访问者,而不需要修改数据结构
应用场景
访问者模式把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由地演化,所以它适用于数据结构稳定的系统