策略与访问者
TY
用策略就是动态改变对象的方法了
怎么还要有访问者的出现
有点晕
STST
策略所改变的同一性质的方法的不同实现,如记录日志,策略1记录在文本文件,策略2记录在Access文件里 ,......
访问者则改变的是完全没有相似点的方法,如一个是打印,一个统计,一个是邮件通知
访问者要求对象的结构稳定,变化的是行为
结构稳定,就是指被访问者对象的类继承层次是稳定的,不会经常变化
TY
哦
策略的不需要结构稳定吗
话说回来,很少有结构稳定的吧,
STST
策略没有这个要求,但是对方法的变化有要求,那就是都是做同样的事情,如"记录日志"
TY
哦,还是有点没理解
STST
稳定的对象也不少,看你的应用环境来的,比如我们研究对初中几何进行建模的时候,"形状"的结构可以认为是稳定的
TY
我好想知道策略,只能改变同级的业务,就像你说的,
STST
就只有那么几种形状
TY
访问者可以改变不同级别的方法
那组合模式的结构相对是很稳定的吧
就是一个叶子和叶枝
不会在扩展新的对象
可以配合访问者
改变一些方法
STST
结构稳定是指静态的结构稳定,反应在类图上
TY
一会试试
STST
你说的这个稳定,是运行时稳定
TY
哦
STST
不是这个意思
TY
静态结构稳定,没明白
怎么讲
那访问者多数用在哪里合适
STST
动物 ->猪
->狗
->羊
这是类图,如果我们的设计只关心这三种动物,不会去关心"马",今年如此,明年也如此
那我就说这个类图的结构是稳定的
TY
组合模式不也是吗
容器 ->叶枝
->叶子
其他的不会在出现了
STST
叶子是有不同类型的叶子的阿
TY
哦
STST
如果叶子的种类固定了,当然是稳定的
TY
哦
STST
明白区别了没?
TY
明白了
结构稳定的类
猪,将来也有可能有不同类型的猪
STST
恩
TY
什么都可能发生
客户一句话就变了
STST
保持设计良好,不用担心,真的
TY
恩
STST
良好的设计,很容易迁移到另一种设计的