java设计模式二十三(访问者模式)

java设计模式—访问者模式

一.概述

访问者模式是指不同的访问者调用同一个对象,根据访问者的身份返回不同的信息。

二.应用场景

1.权限控制
2.拦截器

三.模式示例:

我们以买家和卖家在访问同一个订单时,返回不同的信息为例具体讲解访问者模式的实现

1.创建订单访问接口

public interface IOrderViewer {
    public void visit(BuyerInfo buyerInfo);
    public void visit(SellerInfo keyboard); 
}

2.创建订单信息接口

public interface OrderInfo {
    public void accept(IOrderViewer orderVisitor);
}

3.创建订单访问具体实现类

public class OrderViewerImpl implements IOrderViewer{

    @Override
    public void visit(BuyerInfo buyerInfo) {
        System.out.println("这是订单中的买家信息");
    }

    @Override
    public void visit(SellerInfo keyboard) {
        System.out.println("这是订单中的卖家信息");
    }
}

4.创建买家访问者类

public class BuyerInfo implements OrderInfo {

    @Override
    public void accept(IOrderViewer orderVisitor) {
        orderVisitor.visit(this);
    }
}

5.创建卖家访问者类

public class SellerInfo  implements OrderInfo {

    @Override
    public void accept(IOrderViewer orderVisitor) {
        orderVisitor.visit(this);
    }
}

6.模式调用

public class Test {
    public static void main(String[] args) {
        BuyerInfo buyer = new BuyerInfo();
        buyer.accept(new OrderViewerImpl());

        SellerInfo seller = new SellerInfo();
        seller.accept(new OrderViewerImpl());
    }
}

猜你喜欢

转载自blog.csdn.net/xiaolicd/article/details/81380780
今日推荐