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());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值