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

        访问者模式:常用在需要对系统添加新的功能,但是不希望破坏原有的结构,这个时候就可以使用访问者模式。使用前提是数据结构很少发生改动,同时对数据的操作可能经常会添加新的操作。

    代码如下

    public class test

    {

        public static void main(String[] args)

        {

            persion p=new man("mike");

            visiter v=new visiterA();

            p.accept(v);

            p=new woman("lily");

            p.accept(v);

        }

    }

    abstract class persion

    {

        public String name;

        public persion(String name)

        {

            this.name=name;

        }

        public abstract void accept(visiter v);

    }

    class man extends persion

    {

        public man(String name)

        {

            super(name);

        }

        public void accept(visiter v)

        {

            v.show(this);

        }

    }

    class woman extends persion

    {

        public woman(String name)

        {

            super(name);

        }

        public void accept(visiter v)

        {

            v.show(this);

        }

    }

    abstract class visiter

    {

        abstract void show(man m);

        abstract void show(woman m);

    }

    class visiterA extends visiter

    {

        void show(man m)

        {

            System.out.println("man");

        }

        void show(woman m)

        {

            System.out.println("woman");

        }

    }

    image

    当软件有了新的需求的时候,只需要创建一个能够满足这样需求的特殊visiter,然后将这个visiter传给前台的具体数据对象,即可完成新的功能,同时不需要对代码结构进行修改,充分达到了数据结构与操作分离的目的。前台的代码逻辑也不需要变动。

    联系我:renhanlinbsl@163.com

    2016-8-21

    21:47

  • 相关阅读:
    (TOJ1004)渊子赛马
    (TOJ1063)养兔子
    (TOJ3260)Palindromes
    (TOJ1070)Least Common Multiple
    (TOJ1215)数据结构练习题——合并表
    (TOJ1481)C语言实验题——鞍点
    (TOJ1496)C语言实验题——字符过滤
    (TOJ1003)1、2、3、4、5...
    (TOJ1490)C语言实验题——合法的C标识符
    (TOJ2804)Even? Odd?
  • 原文地址:https://www.cnblogs.com/ives/p/visiter_pattern.html
Copyright © 2011-2022 走看看