| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java进阶-设计模式-访问者模式,mysql索引优化面试题 -> 正文阅读 |
|
[Java知识库]Java进阶-设计模式-访问者模式,mysql索引优化面试题 |
package com.home.test.visitor.userInfo; public class GreenCodePerson implements Person{ private String userName; private String userPhone; private String cardNo; private String address; // 疫苗 private String vaccine; @Override public void accept(Department department) { department.visit(this); } public GreenCodePerson(String userName, String userPhone, String cardNo, String address, String vaccine) { this.userName = userName; this.userPhone = userPhone; this.cardNo = cardNo; this.address = address; this.vaccine = vaccine; } public String getUserName() { return userName; } public String getUserPhone() { return userPhone; } public String getCardNo() { return cardNo; } public String getAddress() { return address; } public String getVaccine() { return vaccine; } } 复制代码 定义访问者部门接口: public interface Department { void visit(RedCodePerson person); void visit(GreenCodePerson person); } 复制代码 定义医院部门访问实现类: package com.home.test.visitor.userInfo; public class DocDepartment implements Department { @Override public void visit(RedCodePerson person) { System.out.printf(“红码人员:%s,手机号:%s,疫苗接种情况:%s,开始隔离!%n”, person.getUserName(), person.getUserPhone(), person.getAddress()); } @Override public void visit(GreenCodePerson person) { System.out.printf(“绿码人员:%s,手机号:%s,疫苗接种情况:%s,放回家.%n”, person.getUserName(), person.getUserPhone(), person.getVaccine()); } } 复制代码 定义乡镇访问实现类: package com.home.test.visitor.userInfo; /**
*/ public class VillageDepartment implements Department { @Override public void visit(RedCodePerson person) { System.out.printf(“红码人员:%s,手机号:%s,身份证号:%s,地址:%s,请及时排查密接人员!%n”, person.getUserName(), person.getUserPhone(), person.getCardNo(), person.getAddress()); } @Override public void visit(GreenCodePerson person) { System.out.printf(“绿码人员:%s,手机号:%s,身份证号:%s,疫苗接种情况:%s,”, person.getUserName(), person.getUserPhone(), person.getCardNo(), person.getVaccine()); if ((“未接种”).equals(person.getVaccine())) { System.out.println(“请及时通知该人员接种疫苗”); } else {
System.out.println(“请提醒多喝热水.”); } } } 复制代码 定义测试 package com.home.test.visitor.userInfo; import java.util.ArrayList; import java.util.List; public class ClientDemo { public static void main(String[] args) { List personList = new ArrayList() {{ add(new GreenCodePerson(“Job”, “13188880000”, “866111”, “New Work”, “未接种”)); add(new GreenCodePerson(“Job2”, “13188889999”, “866112”, “New Work”, “未接种”)); add(new GreenCodePerson(“Job3”, “13200000000”, “866113”, “New Work”, “已接种”)); add(new RedCodePerson(“李富贵”, “13200000001”, “866114”, “New Work”)); }}; System.out.println("------------------------医院权限查看------------------------"); DocDepartment docDepartment = new DocDepartment(); personList.forEach(person -> person.accept(docDepartment)); System.out.println("------------------------乡镇部门权限查看------------------------"); VillageDepartment villageDepartment = new VillageDepartment(); personList.forEach(person -> person.accept(villageDepartment)); } } 复制代码 输出结果: ------------------------医院权限查看------------------------ 绿码人员:Job,手机号:13188880000,疫苗接种情况:未接种,放回家. 绿码人员:Job2,手机号:13188889999,疫苗接种情况:未接种,放回家. 绿码人员:Job3,手机号:13200000000,疫苗接种情况:已接种,放回家. 红码人员:李富贵,手机号:13200000001,疫苗接种情况:New Work,开始隔离! ------------------------乡镇部门权限查看------------------------ 绿码人员:Job,手机号:13188880000,身份证号:866111,疫苗接种情况:未接种,请及时通知该人员接种疫苗 绿码人员:Job2,手机号:13188889999,身份证号:866112,疫苗接种情况:未接种,请及时通知该人员接种疫苗 绿码人员:Job3,手机号:13200000000,身份证号:866113,疫苗接种情况:已接种,请提醒多喝热水. 红码人员:李富贵,手机号:13200000001,身份证号:866114,地址:New Work,请及时排查密接人员! 复制代码 说明 –
在 访问者模式由两部分组成: 一个名为 提供接受访问者的 如下UML图: 如何学习访问者模式 刚学 那怎么办呢,敲代码,多找一些
同时,不要去害怕它.一天不行就两天,每天 然后尝试着去自己写一个例子,再去写一些总结. 最后,在看一些概念性的东西.这也是为啥要把 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 5:55:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |