码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-11-03 13:05:58      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:.com   string   一个   show   解决办法   collect   lock   概述   具体类   

一、概述

  概念

  技术分享

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

  引入

  试想这样一个场景,在一个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)——行为模式之访问者模式

标签:.com   string   一个   show   解决办法   collect   lock   概述   具体类   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!