zoukankan      html  css  js  c++  java
  • 设计模式访问者

    访问者模式:上门服务的"贱"模式。有两个角色

    访问者 和 爷

     

    来看爷,访问者总得做点什么?Visitor.visit(爷)

    爷也要,摆个姿态接受下 爷.Accept(Visitor){Visitor.visit('爷')}

     

    具体做什么?访问者说了算,可以理发、修脚、按摩、盘道,随便了。

     

    也只要写个Accecpt,访问者,提供服务方法

    爷.Accept(访问者)

    {

    访问者.Visit(爷);

    }

     

     

    正经点:

    访问者模式的目的在于,不改变类的前提下,为类增加一个新的操作

    当然,也有这样说的,在不改变一个层次结构中的类的情况下,为一个层次结构定义一个新的操作。

     

    实现的机制是,为访问者定义一个接口(抽象类也行),并将Accept()方法计算入到" 爷"的层次结构中。

    利用两次分发机制()访问者先调用"爷"的Accept(Visitor)方法(注意:Visitor访问者是参数),然后,接收

    了Accept(Vistor)方法调用的对象将调用结果用一个Visit(this)方法反馈给访问者。(您给的礼,我笑纳了。)

    Visit()方法定义在Visitor中。举个例子,理发的方法(Visit),当然理发师掌握着(Visitor)

     

    我家大门常打开,欢迎你来这里…….

     

     

     
     
    作者:易简.道    
     
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    MySQL存储过程中的3种循环【转载】
    单元样选择按钮
    JavaScript(jQuery)实现打印英文格式日期
    哈希算法
    Hello,Expression Blend 4 (含Demo教程和源码)
    Cocos2Dx for XNA类解析(2): CCDirector(上)
    github for Windows使用介绍
    Hello,Behavior
    Vue component+vuedraggable拖拽动态表单
    Vue Component
  • 原文地址:https://www.cnblogs.com/xyicheng/p/2223450.html
Copyright © 2011-2022 走看看