首页 > 编程语言 > 详细

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

时间:2017-11-03 12:23:27      阅读:188      评论:0      收藏:0      [点我收藏+]

一、概述

  概念

  技术分享

  作用于某个对象群中各个对象的操作。它可以使你在不改变这些对象本身的情况下,定义作用于这些对象的新操作。

  引入

  试想这样一个场景,在一个Collection中放入了一大堆的各种对象的引用,取出时却需要根据这些对象的不同具体类型执行不同操作,那我们有如下方案:

  public void show(Collection c) {
        Iterator it = c.iterator();
        while (it.hasNext()) {
            Object o = it.next();
            if (o instanceof Integer) {
                // Integer对应的操作
            } else if (o instanceof String) {
                // String对应的操作
            } else if (o instanceof Collection) {
                // Collection对应的操作
            } else {
                // 省略若干个else if
            } 
        }
    }

  就不分析说这段代码到底有什么问题了,我们直接引入解决办法:访问者模式——把数据结构和数据结构之上的操作解耦

  UML简图

  技术分享

  

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

原文:http://www.cnblogs.com/jiangbei/p/7777376.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!