策略与访问者

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

良好的设计,很容易迁移到另一种设计的

原文地址:https://www.cnblogs.com/stst/p/4908863.html