评价抽象类
public abstract class Action { public abstract void getManAction(Man man); public abstract void getWomenAction(Women women); }成功的评价
public class Success extends Action{ @Override public void getManAction(Man man) { System.out.println("男生评价是成功"); } @Override public void getWomenAction(Women women) { System.out.println("女生评价是成功"); } }失败的评价
public class Fail extends Action{ @Override public void getManAction(Man man) { System.out.println("男生评价是失败"); } @Override public void getWomenAction(Women women) { System.out.println("女生评价是失败"); } }人的抽象类
public abstract class Person { public abstract void accept(Action action); }男人的评价
public class Man extends Person{ @Override public void accept(Action action) { action.getManAction(this); } }女人的评价
public class Women extends Person{ @Override public void accept(Action action) { action.getWomenAction(this); } }管理类
public class ObjectStruct { List<Person> people = new ArrayList<>(); /** 增加到list**/ public void attach(Person p) { people.add(p); } /** 移除**/ public void detach(Person p) { people.remove(p); } /** 显示测评情况**/ public void display(Action action) { for(Person p: people) { p.accept(action); } } }客户端
public class Client { public static void main(String[] args) { ObjectStruct objectStruct = new ObjectStruct(); Man man = new Man(); Women women = new Women(); objectStruct.attach(man); objectStruct.attach(women); objectStruct.display(new Success()); objectStruct.display(new Fail()); System.out.println("移除女生"); objectStruct.detach(women); objectStruct.display(new Success()); objectStruct.display(new Fail()); } }