码迷,mamicode.com
首页 > 其他好文 > 详细

Visitor Pattern

时间:2020-06-28 18:58:17      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:sys   com   lang   cti   his   extends   rri   visit   spl   

问题

技术图片


技术图片

Solve

技术图片

// Action.java
public abstract class Action {
    public abstract void getManResult(Man man);

    public abstract void getWomanResult(Woman woman);


}
// Success.java
public class Success extends Action {
    @Override
    public void getManResult(Man man) {
        System.out.println("Man said you‘re great.");
    }

    @Override
    public void getWomanResult(Woman woman) {
        System.out.println("Woman said you are great.");
    }
}
// Fail.java
public class Fail extends Action{
    @Override
    public void getManResult(Man man) {
        System.out.println("Man said you are a looser.");
    }

    @Override
    public void getWomanResult(Woman woman) {
        System.out.println("Woman said you‘re a looser.");
    }
}
// Person.java
public abstract class Person {
    public abstract void accept(Action action);
}
// Man.java
public class Man extends Person{
    @Override
    public void accept(Action action) {
        action.getManResult(this);
    }
}
//Woman.java
public class Woman extends Person {
    @Override
    public void accept(Action action) {
        action.getWomanResult(this);
    }
}
//ObjectStructure.java
import java.util.LinkedList;
import java.util.List;

public class ObjectStructure {
    private List<Person> personList = new LinkedList<Person>();

    public void attach(Person p){
        personList.add(p);
    }

    public void detach(Person p){
        personList.remove(p);
    }

    public void display(Action action){
        for(Person p : personList){
            p.accept(action);
        }
    }
}

Visitor Pattern

标签:sys   com   lang   cti   his   extends   rri   visit   spl   

原文地址:https://www.cnblogs.com/nedrain/p/13204011.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!