设计模式3-行为性
1模板模式
2策略模式
3命令模式?*****
4观察者模式--一种被动模式
一对多,发布者控制订阅者(添加,删除,通知),发布者自己变化,自己通知订阅者。
不是订阅者自己发现的,是发布者主动让订阅者知道的。
5状态模式?*****--顶层相互聚合
6访问者模式? ***** --- 双分派
在家里,找人喂猫狗-----依赖关系(方法参数)
数据结构稳定,也就是元素子类扩展性不好;访问者子类扩展性好,也就是对元素的操作方式的增删方便
那这个cat入参不久没意义了么
桥接里面 一个维度聚合了另一个维度,这里两个“维度”之间没有直接聚合
为了让访问者能够对容器中的每一个元素类型都进行访问
所以在定义抽象访问者角色时,方法参数不能声明为抽象元素角色,而应该是具体元素角色,并且有几个元素角色就有几个访问方法
所以访问者需要有针对每一个具体元素类型的访问行为方法
指定访问者通过home类·访问集合对象里面的元素啊
一个具体访问者定义一个行为,多个具体访问者就会对所有具体元素有多个行为了
动态分派--重写
静态分派 -重载
双分派
7备忘录模式
窄接口
接口宽
白箱
黑箱备忘录
黑箱备忘录 与建造者模式 -- 使用了员内部类
黑箱-外界 看不见 子实现类
8解释器模式 ?**********
spring中的el表达式
说是存储变量,实际上是为了存储终结符表达式的值
此处的目的是将参与计算的值封装成终结符表达式
递归拆分
逆波兰式??
太神奇了,将表达式的解析设计成类与类的关系,如果是普通的解析方式,只能用树形结构去解析,但操作起来非常复杂
继承又聚合同一个抽象或接口 递归 ???
9职责链--自己聚合自己
代理是找家族人,这里直接就是自己了
FilterChain用一个List<Filter>和add操作取代了原本的Filter内部聚合与设置下一个Filter的过程
10中介者
终结者 聚合两方,让两方沟通
11迭代器
浙公网安备 33010602011771号