JAVA笔记 | 计谋模式+罗列Enum简单实现计谋模式(可直接套用) ...

打印 上一主题 下一主题

主题 874|帖子 874|积分 2622

本篇为更为简单的计谋模式应用,使用罗列来进行计谋分配
  上一篇(链接如下)更像是计谋+工厂模式来分配计谋
  JAVA笔记 | 现实上用到的计谋模式(可直接套用)-CSDN博客
   先创建计谋相干类
  1. //策略类
  2. public interface PetStrategy {
  3.     /**
  4.      * 执行动作  - 跑RUN
  5.      */
  6.     String run(String name);
  7. }
  8. //猫实现类
  9. @Service
  10. public class CatStrategy implements PetStrategy{
  11.     @Override
  12.     public String run(String name) {
  13.         return name + "猫跑了";
  14.     }
  15. }
  16. //狗实现类
  17. @Service
  18. public class DogStrategy implements PetStrategy{
  19.     @Override
  20.     public String run(String name) {
  21.         return name + "狗跑了";
  22.     }
  23. }
复制代码
新建计谋罗列
  1. @Getter
  2. public enum PetTypeEnum {
  3.     DOG("1", "DOG", new DogStrategy()),
  4.     CAT("2", "CAT", new CatStrategy());
  5.     private String code;
  6.     private String type;
  7.     private PetStrategy petStrategy;
  8.     PetTypeEnum(String code, String type,PetStrategy strategy) {
  9.         this.code = code;
  10.         this.type = type;
  11.         this.petStrategy = strategy;
  12.     }
  13.     //根据code获得枚举策略类型
  14.    public static PetTypeEnum getPetTypeEnum(String code){
  15.         PetTypeEnum type = Arrays.stream(PetTypeEnum.values())
  16.                 .filter(a -> a.code.equals(code))
  17.                 .findFirst()
  18.                 .orElse(null);
  19.         if(null == type){
  20.             throw new IllegalArgumentException("未找到type");
  21.         }
  22.         return type;
  23.     }
  24. }
复制代码
controller调用测试



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表