(行为型模式四)访问者模式

package com.eyugame.modle;
/**
 * 访问者模式
 * @author JYC506
 *
 */
/*访问者*/
public class Visitor implements IVisitor{

	@Override
	public void update(IPro o) {
	o.doSomeThing();
	}

	public static void main(String[] args) {
		IPro pro1=new Pro1();
		IPro pro2=new Pro2();
		IVisitor visitor=new Visitor();
		pro1.acept(visitor);
		pro2.acept(visitor);
	}

}
interface IVisitor{
	void update(IPro o);
}
/*产品*/
interface IPro{

  void acept(IVisitor visitor);

  void doSomeThing();
}
/*产品1*/
class Pro1 implements IPro{

	@Override
	public void acept(IVisitor visitor) {
		visitor.update(this);
	}

	@Override
	public void doSomeThing() {
		System.out.println("pro1 do something");

	}

}
/*产品2*/
class Pro2 implements IPro{

	@Override
	public void acept(IVisitor visitor) {
		visitor.update(this);

	}

	@Override
	public void doSomeThing() {
		System.out.println("pro2 do something");
	}

}

时间: 2024-10-16 01:25:19

(行为型模式四)访问者模式的相关文章

(24):(行为型模式) Visitor 访问者模式

[所有分类] (24):(行为型模式) Visitor 访问者模式

23行为型模式之访问者模式

概念 Visitor模式也叫访问者模式,是行为模式之一,它分离对象的数据和行为,使用Visitor模式,可以不修改已有类的情况下,增加新的操作角色和职责. 角色和职责 抽象访问者(Visitor)角色:声明了一个或者多个访问操作,形成所有的具体元素角色必须实现的接口. 具体访问者(ConcreteVisitor)角色:实现抽象访问者角色所声明的接口,也就是抽象访问者所声明的各个访问操作. 抽象节点(Element)角色:声明一个接受操作,接受一个访问者对象作为一个参量. 具体节点(Concret

行为型模式之访问者模式

概述 访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作.例如处方单中的各种药品信息就是被访问的元素,而划价人员和药房工作人员就是访问者.访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作. 在使用访问者模式时,被访问元素通常不是单独存在的,它们存储在一个集合中,这个集合被称为“对象结构”,访问者通过遍历对象结构实现对其中存储的元素的逐个操作

行为型设计模式之访问者模式

结构 意图 表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 适用性 一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作. 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作“污染”这些对象的类.Vi s i t o r 使得你可以将相关的操作集中起来定义在一个类中.当该对象结构被很多应用共享时,用Vi s i t o r 模式让每个应用仅包含需要用到的操作. 定义对象结

10 行为型模式之 - 访问者模式

访问者模式介绍:访问者模式是一种将数据操作与数据结构分离的设计模式,它是<设计模式>中23种设计模式中最复杂的一个,但是它的使用频率并不高,正如<设计模式>的作者GOF对访问者模式的描述:大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是真地需要它了. 访问者模式的基本想法是,软件系统中拥有一个由许多对象构成的,比较稳定的对象结构,这些对象的类都拥有一个accept方法,用来接受访问者对象的访问.访问者是一个接口,它拥有一个visit方法,从而使访问者得以处

Java设计模式(23)——行为模式之访问者模式

一.概述 概念 作用于某个对象群中各个对象的操作.它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作. 引入 试想这样一个场景,在一个Collection中放入了一大堆的各种对象的引用,取出时却需要根据这些对象的不同具体类型执行不同操作,那我们有如下方案: public void show(Collection c) { Iterator it = c.iterator(); while (it.hasNext()) { Object o = it.next(); if (o i

java设计模式9.备忘录模式、访问者模式、调停者模式

备忘录模式 备忘录模式又叫快照模式,备忘录对象是一个用来存储另外一个对象内部状态快照的对象.备忘录的用意是在不破坏封装的条件下,将一个对象的状态捕捉,并外部化存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态,备忘录模式常与命令模式和迭代子模式一起使用. 访问者模式 访问者的目的是封装一些施加于某种数据结构元素之上的操作.一旦这些操作需要修改的话,接受这个操作的数据结构则可以保持不变.访问者模式使适用于数据结构相对未定的系统,它把数据结构和作用于结构之上的操作解耦. 抽象访问者角色

GoF23种设计模式之行为型模式之访问者模式

概述 表示一个作用于某对象结构中的各元素的操作. 它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作. 适用性 1.一个对象结构包含很多类对象,它们有不同的接口,而你想对这些对象实施一些依赖于其具体类的操作. 2.需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而你想避免让这些操作"污染"这些对象的类. Visitor使得你可以将相关的操作集中起来定义在一个类中. 当该对象结构被很多应用共享时,用Visitor模式让每个应用仅包含需要用到的操作. 3.定义对象结构

设计模式(十七)访问者模式(Visitor)-行为型

访问者模式Visitor 访问者模式(Visitor Pattern)是GoF提出的23种设计模式中的一种,属于行为模式.据<大话设计模式>中说算是最复杂也是最难以理解的一种模式了. 定义(源于GoF<Design Pattern>):表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作. 从定义可以看出结构对象是使用访问者模式必备条件,而且这个结构对象必须存在遍历自身各个对象的方法.这便类似于Java语言当中的collection

(十四)访问者模式

1. 访问者模式定义 访问者模式(Visitor),表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作.[DP] 2. 优缺点 访问者模式适用于数据结构相对稳定的系统.如果Element的具体类别不稳定,那么,每增加一种ConcreteElement,就需要在Visitor类的抽象方法就不可能稳定,需要在Visitor和它的子类中都增加一个方法,这就不符合开放-封闭原则: 访问者模式把数据结构和作用于数据结构上的操作之间的耦合解脱开,使得操作