策略与访问者

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

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

时间: 2024-12-18 19:31:27

策略与访问者的相关文章

设计模式-行为型模式-策略模式

策略模式 在实际工作中我用到了策略模式,但为什么要有环境角色呢? 这里我贴上英文对含义的介绍, The Strategy Pattern defines a family of algorithms,encapsulates each one,and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. 然后看看这种设计模式的组成, 一般的,策略模式

JAVA技术路线图

在技术方面无论我们怎么学习,总感觉需要提升自已,却又不知道从哪里着手,同时也不知道自己处于哪个水平.这时候就需要有清晰的指示图来指引我们,这样我们能清楚的知道我们在哪方面不足,以及自己大概处于哪个阶段和水平. Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML和属性文件 网路编程 Socket/TCP/UDP.NIO.RMI.CORBA Java语法基础 类.抽象类.接

设计模式心得

1.继承是系统进化的主要手段,设计模式根据讨论方向分为三种,其一,讨论对象与场景的关系,以改善继承,以利于系统进.其二,讨论类的组合,其三,讨论类树的管理.最终目的是为进化中的系统提供代码结构优化的种种便利. 2. 工厂方法,原型,单例实际上是讨论对象与场景的关系.工厂方法实现了类与场景的代码级别的隔离,方便类的独立进化.原型分离了对象的初始化与对象的使用,为两个不同应用场景的交互提供便利,单例实际上从资源的角度限制场景对对象的使用次数. 解释器也是对象与场景的关系,工厂方法生产对象,解释器生产

JAVA 相关资料

在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML和属性文件 图形编程 AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace 网路编程 Applet.Socket/TCP/UDP.

设计模式-行为型模式-中介者模式

中介者要解决的问题 中介者模式(Mediator Pattern)是用来降低多个对象和类之间通信的复杂度.这种模式提供了一个中介类,该类通常用来处理不同类之间的通信.中介者模式符合迪米特原则,即一个类应当尽量减少与其他类的联系. 实例描述 在我们现实生活中就有这样的例子,你如果去租房,你可能会在网站上找一些发布租房的信息,找到对应的房东.为了能够找到性价比高的房子,你可能找好多家,那么你都要和这些房东打交道,留下电话啥的.有时候房子不好出租的情况下,房东还会主动联系你,就有了下面这幅图: 我们可

从程序员到CTO的Java技术路线图(我爱分享)

在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML和属性文件 图形编程 AWT(Java2D/JavaSound/JMF).Swing.SWT.JFace 网路编程 Applet.Socket/TCP/UDP.

从程序员到CTO的Java技术路线图

http://zz563143188.iteye.com/blog/1877266在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. XML和属性文件 图形编程 AWT(Java2D/JavaSound/JMF).Sw

23种设计模式的概述

总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十一种:策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式.中介者模式.解释器模式. 其实还有两类:并发型模式和线程池模式.下面用表格的方式进行详细的说明(其中加粗的是用的比较多的): 目的  范   围 创建型模式 结构型模

从java程序员到CTO的成长路线图

很多新人不知道从事java开发,具体的发展路径是怎么样的,甚至很多人都不能区分程序猿和攻城师的区别.包括不少小白,从事java开发都半年,甚至1年了,对职业发展还没有清晰的认证.这非常不利于自己的发展,人要往哪走,首先需要明确的是方向.今天,就给大家揭露一下java开发从程序猿到CTO的路线图,以及每个阶段需要掌握的技术. Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 核心编程 IO.多线程.实体类. 集合类.正则表达式. X