标签:type 去掉 none 调整 项目 请求 com 相关 真心
package visitor.侠客行; public interface 掌门人 { }
package visitor.侠客行; public class 没做过坏事的掌门 implements 掌门人 { }
package visitor.侠客行; public class 做过坏事的掌门 implements 掌门人 { }
package visitor.侠客行; import java.util.ArrayList; import java.util.List; public class 侠客岛 { private List<掌门人> 掌门人List = new ArrayList<>(); public void add掌门人(掌门人 某掌门) { 掌门人List.add(某掌门); } public void 赏善罚恶(String 处理人) { if (处理人.equals("张三")) { for (掌门人 某掌门X : 掌门人List) { if (某掌门X instanceof 没做过坏事的掌门) { System.out.println("好掌门, 张三: 赏赐没做过坏事的掌门"); } else if (某掌门X instanceof 做过坏事的掌门) { System.out.println("坏掌门, 张三: 不管做过坏事的掌门"); } System.out.println(); } } else if (处理人.equals("李四")) { for (掌门人 某掌门X : 掌门人List) { if (某掌门X instanceof 没做过坏事的掌门) { System.out.println("好掌门, 李四: 不管没做过坏事的掌门"); } else if (某掌门X instanceof 做过坏事的掌门) { System.out.println("坏掌门, 李四: 惩罚做过坏事的掌门"); } System.out.println(); } } } }
package visitor.新版侠客行; public interface 掌门人 { } package visitor.新版侠客行; public class 没做过坏事的掌门 implements 掌门人 { } package visitor.新版侠客行; public class 做过坏事的掌门 implements 掌门人 { }
package visitor.新版侠客行; public interface 访问使者 { void 拜访(做过坏事的掌门 坏人); void 拜访(没做过坏事的掌门 好人); }
package visitor.新版侠客行; public class 张三 implements 访问使者 { @Override public void 拜访(没做过坏事的掌门 好人) { System.out.println("好掌门, 张三: 赏赐没做过坏事的掌门"); } @Override public void 拜访(做过坏事的掌门 坏人) { System.out.println("坏掌门, 张三: 不管做过坏事的掌门"); } }
package visitor.新版侠客行; public class 李四 implements 访问使者 { @Override public void 拜访(没做过坏事的掌门 好人) { System.out.println("好掌门, 李四: 不管没做过坏事的掌门"); } @Override public void 拜访(做过坏事的掌门 坏人) { System.out.println("坏掌门, 李四: 惩罚做过坏事的掌门"); } }
package visitor.新版侠客行; import java.util.ArrayList; import java.util.List; public class 侠客岛 { private List<掌门人> 掌门人List = new ArrayList<>(); public void add掌门人(掌门人 某掌门) { 掌门人List.add(某掌门); } public void 赏善罚恶(访问使者 使者) { for (掌门人 某掌门X : 掌门人List) { if (某掌门X instanceof 没做过坏事的掌门) { 使者.拜访((没做过坏事的掌门)某掌门X); } else if (某掌门X instanceof 做过坏事的掌门) { 使者.拜访((做过坏事的掌门)某掌门X); } System.out.println(); } } }
package visitor.新版侠客行; public class Test { public static void main(String[] args){ 侠客岛 善善罚恶二使 = new 侠客岛(); 善善罚恶二使.add掌门人(new 做过坏事的掌门()); 善善罚恶二使.add掌门人(new 没做过坏事的掌门()); 善善罚恶二使.add掌门人(new 没做过坏事的掌门()); 善善罚恶二使.add掌门人(new 做过坏事的掌门()); 访问使者 张三 = new 张三(); 访问使者 李四 = new 李四(); 善善罚恶二使.赏善罚恶(李四); 善善罚恶二使.赏善罚恶(张三); } }
package visitor.新版侠客行; public class 龙木岛主 implements 访问使者 { @Override public void 拜访(做过坏事的掌门 坏人) { System.out.println("龙木岛主,惩罚坏人"); } @Override public void 拜访(没做过坏事的掌门 好人) { System.out.println("龙木岛主,赏赐好人"); } }
package visitor.最新版本侠客行; public interface 掌门人 { void 接受拜访(访问使者 赏善使者); }
package visitor.最新版本侠客行; public class 没做过坏事的掌门 implements 掌门人 { @Override public void 接受拜访(访问使者 赏善罚恶使者) { 赏善罚恶使者.拜访(this); } }
package visitor.最新版本侠客行; public class 做过坏事的掌门 implements 掌门人 { @Override public void 接受拜访(访问使者 赏善罚恶使者) { 赏善罚恶使者.拜访(this); } }
package visitor.最新版本侠客行; public interface 访问使者 { void 拜访(做过坏事的掌门 坏人); void 拜访(没做过坏事的掌门 好人); } package visitor.最新版本侠客行; public class 张三 implements 访问使者 { @Override public void 拜访(没做过坏事的掌门 好人) { System.out.println("好掌门, 张三: 赏赐没做过坏事的掌门"); } @Override public void 拜访(做过坏事的掌门 坏人) { System.out.println("坏掌门, 张三: 不管做过坏事的掌门"); } }
package visitor.最新版本侠客行; public class 李四 implements 访问使者 { @Override public void 拜访(没做过坏事的掌门 好人) { System.out.println("好掌门, 李四: 不管没做过坏事的掌门"); } @Override public void 拜访(做过坏事的掌门 坏人) { System.out.println("坏掌门, 李四: 惩罚做过坏事的掌门"); } }
package visitor.最新版本侠客行; import java.util.ArrayList; import java.util.List; public class 侠客岛 { private List<掌门人> 掌门人List = new ArrayList<>(); public void add掌门人(掌门人 某掌门) { 掌门人List.add(某掌门); } public void 赏善罚恶(访问使者 使者) { for (掌门人 某掌门X : 掌门人List) { 某掌门X.接受拜访(使者); System.out.println(); } } }
package visitor.最新版本侠客行; public class 龙木岛主 implements 访问使者 { @Override public void 拜访(做过坏事的掌门 坏人) { System.out.println("龙木岛主,惩罚坏人"); } @Override public void 拜访(没做过坏事的掌门 好人) { System.out.println("龙木岛主,赏赐好人"); } }
package visitor.最新版本侠客行; public class 不好不坏的掌门 implements 掌门人 { @Override public void 接受拜访(访问使者 赏善罚恶使者) { 赏善罚恶使者.拜访(this); } }
package visitor; public class example { public static void main(String[] args) { A1 a1 = new A1(); A2 a2 = new A2(); A3 a3 = new A3(); B1 b1 = new B1(); B2 b2 = new B2(); B3 b3 = new B3(); b1.accept(a1); b1.accept(a2); b1.accept(a3); b2.accept(a1); b2.accept(a2); b2.accept(a3); b3.accept(a1); b3.accept(a2); b3.accept(a3); } } abstract class A { abstract void visit(B1 b1); abstract void visit(B2 b2); abstract void visit(B3 b3); } class A1 extends A { @Override void visit(B1 b1) { System.out.println("A1 play with B1"); } @Override void visit(B2 b2) { System.out.println("A1 play with B2"); } @Override void visit(B3 b3) { System.out.println("A1 play with B3"); } } class A2 extends A { @Override void visit(B1 b1) { System.out.println("A2 play with B1"); } @Override void visit(B2 b2) { System.out.println("A2 play with B2"); } @Override void visit(B3 b3) { System.out.println("A2 play with B3"); } } class A3 extends A { @Override void visit(B1 b1) { System.out.println("A3 play with B1"); } @Override void visit(B2 b2) { System.out.println("A3 play with B2"); } @Override void visit(B3 b3) { System.out.println("A3 play with B3"); } } abstract class B { abstract void accept(A a); } class B1 extends B { @Override void accept(A a) { a.visit(this); } } class B2 extends B { @Override void accept(A a) { a.visit(this); } } class B3 extends B { @Override void accept(A a) { a.visit(this); } }
标签:type 去掉 none 调整 项目 请求 com 相关 真心
原文地址:https://www.cnblogs.com/noteless/p/10185359.html