设计模式3-行为性

1模板模式

2策略模式

 

3命令模式?*****

 

4观察者模式--一种被动模式

一对多,发布者控制订阅者(添加,删除,通知),发布者自己变化,自己通知订阅者。

不是订阅者自己发现的,是发布者主动让订阅者知道的。

 

5状态模式?*****--顶层相互聚合

 

 

6访问者模式? ***** --- 双分派

在家里,找人喂猫狗-----依赖关系(方法参数

 

数据结构稳定,也就是元素子类扩展性不好;访问者子类扩展性好,也就是对元素的操作方式的增删方便

那这个cat入参不久没意义了么

桥接里面 一个维度聚合了另一个维度,这里两个“维度”之间没有直接聚合

为了让访问者能够对容器中的每一个元素类型都进行访问

所以在定义抽象访问者角色时,方法参数不能声明为抽象元素角色,而应该是具体元素角色,并且有几个元素角色就有几个访问方法

所以访问者需要有针对每一个具体元素类型的访问行为方法

指定访问者通过home类·访问集合对象里面的元素啊

 

一个具体访问者定义一个行为,多个具体访问者就会对所有具体元素有多个行为了

动态分派--重写

静态分派 -重载

双分派

 

7备忘录模式

  窄接口

  接口宽

白箱

黑箱备忘录

 

黑箱备忘录 与建造者模式 -- 使用了员内部类

黑箱-外界 看不见 子实现类

 

 

 

 

 

8解释器模式 ?**********

spring中的el表达式          

说是存储变量,实际上是为了存储终结符表达式的值

此处的目的是将参与计算的值封装成终结符表达式

递归拆分

逆波兰式??

太神奇了,将表达式的解析设计成类与类的关系,如果是普通的解析方式,只能用树形结构去解析,但操作起来非常复杂

 

继承又聚合同一个抽象或接口  递归 ???

 

9职责链--自己聚合自己

  代理是找家族人,这里直接就是自己了

FilterChain用一个List<Filter>和add操作取代了原本的Filter内部聚合与设置下一个Filter的过程

 

10中介者

终结者 聚合两方,让两方沟通

 

11迭代器

 

 

   

 

posted on 2026-03-21 22:59  daofree  阅读(1)  评论(0)    收藏  举报