行为型模式-访问者模式
Posted 风流 少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了行为型模式-访问者模式相关的知识,希望对你有一定的参考价值。
案例
给宠物喂食:宠物有狗、猫等,要给宠物喂食,可以是主人喂,也可以是其它人喂。
/**
* 抽象访问者角色类
*/
public interface Person
void feed(Cat cat);
void feed(Dog dog);
/**
* 具体访问者角色类
*/
public class Owner implements Person
@Override
public void feed(Cat cat)
System.out.println("主人喂食宠物猫");
@Override
public void feed(Dog dog)
System.out.println("主人喂食宠物够");
/**
* 具体访问者角色类
*/
public class Someone implements Person
@Override
public void feed(Cat cat)
System.out.println("其他人喂食宠物猫");
@Override
public void feed(Dog dog)
System.out.println("其他人喂食宠物够");
/**
* 抽象原色角色类
*/
public interface Animal
void accept(Person person);
/**
* 具体元素角色类
*/
public class Cat implements Animal
@Override
public void accept(Person person)
person.feed(this);
/**
* 具体原色角色类
*/
public class Dog implements Animal
@Override
public void accept(Person person)
person.feed(this);
/**
* 对象结构类
*/
public class Home
private List<Animal> nodeList = new ArrayList<>();
public void add(Animal animal)
nodeList.add(animal);
public void action(Person person)
for (Animal animal : nodeList)
animal.accept(person);
public class Client
public static void main(String[] args)
Home home = new Home();
home.add(new Dog());
home.add(new Cat());
Owner owner = new Owner();
home.action(owner);
以上是关于行为型模式-访问者模式的主要内容,如果未能解决你的问题,请参考以下文章
JAVA SCRIPT设计模式--行为型--设计模式之Vistor访问者(23)
JAVA SCRIPT设计模式--行为型--设计模式之Vistor访问者(23)