面向对象设计原则
设计目的单一的类, 职责单一! 不是功能单一, 也就是某个类负责一方面的任务人不是单单一个功能, 否则就违反了"高内聚".
设计目的单一的类, 职责单一! 不是功能单一, 也就是某个类负责一方面的任务人不是单单一个功能, 否则就违反了"高内聚".
解释器属于一种行为模式, 它与命令模式非常相似.
GOF 解释器模式: 给定一个语言, 定义它的文法的一种表示, 并定义一个解释器, 这个解释器是用该表示来解释语言中的句子.
能对对相同的信息给出判断不同的判断.
责任链模式: 使多个对象都有机会处理请求, 从而避免请求的发送者和接受者之间的耦合关系. 将这个对象连成一条链, 并沿着这条链传递该请求, 直到有一个对象处理它为止.
访问者模式: 表示一个作用于某对象结构中的各个元素的操作. 它使你可以在不改变各元素的类的前提下定义这些元素的新操作.
访问者模式适用于数据结构比较稳定的系统, 要增加新的 Element 实现类, 则访问的接口或者实现类需要响应的修改.
命令模式: 将一个请求封装成一个对象, 从而使用户可以用不同的请求对客户进行参数化; 对请求排队或记录请求日志, 并支持可撤销操作.
对于传令官的改进, 可以增加个列表, 使命令可以撤销, 或者分批执行.
命令模式可以轻松将命令的发送者和接收者解耦…
中介者模式与单例模式的思想类似, 都进行职责的集中.
中介者模式: 用一个中介对象来封装一系列的对象交互. 中介者使各个对象不需要显示地互相引用, 从而使其耦合松散, 而且可以独立第改变他们之间的交互.
中介使两个互相不知道的类 A、类 B 进行通信。
通信的类与中介者类组成了一个星型网络, 在网络中, 中介者可以看做两个通信者的服务器.
备忘录模式: 在不破坏封装的前提下,补货一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。
观察者模式定义了一种一对多的依赖关系, 让多个观察对像同时监听某一个对象, 这个对象在改变时会通知所有观察者。
在状态模式中,当一个对象的内在状态改变时允许改变其行为, 这个对象看起来像是改变了它的类。
策略模式定义了算法家族, 分别封装起来, 让他们之间可以相互替换, 此模式让算法的变化影响到使用的客户。