当前位置: 首页 > news >正文

维护网站建设网站名称是什么

维护网站建设,网站名称是什么,天天seo站长工具,国内优秀网站网页设计一、背景 策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。 二、结构 策略模式主要包含三个角色&…

一、背景

策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列的算法,并将每一个算法封装起来,使它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。

二、结构

策略模式主要包含三个角色:

  • Strategy(策略接口):定义了所有支持的所有算法的公共接口。
  • ConcreteStrategy(具体策略):实现了 Strategy 接口,提供了具体的算法实现。
  • Context(上下文):维护了一个对 Strategy 对象的引用,通常在构造函数中传入具体的策略对象,并通过一个方法让策略接口的实现生效。

三、示例代码

假设我们需要获取每个班级的学生人数,只是简单的一个示例:

3.1 创建班级的枚举类
/*** 班级信息枚举*/
@AllArgsConstructor
@Getter
public enum ClassEnum {CLASS_1A("1A", "一年级一班", 25),CLASS_1B("1B", "一年级二班", 32);// 班级代码private final String classCode;// 班级名称private final String className;// 班级人数private final int numberOfStudents;public static ClassEnum getByClassCode(String classCode) {return Arrays.stream(ClassEnum.values()).filter(classInfo -> classInfo.getClassCode().equals(classCode)).findFirst().orElse(null);}
}
3.2 抽象类
/*** 抽象处理类*/
public abstract class AbstractClassHandle {public abstract String getCode();public abstract int getCount();}
3.3 简单工厂
/*** 简单工厂类**/
@Component
public class ClassExecuteServiceFactory implements ApplicationContextAware {private final static Map<String, AbstractClassHandle> CLASS_CODE_ABSTRACT_CLASS_HANDLE_MAP = new HashMap<>();@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {Map<String, AbstractClassHandle> types = applicationContext.getBeansOfType(AbstractClassHandle.class);types.values().forEach(e -> CLASS_CODE_ABSTRACT_CLASS_HANDLE_MAP.putIfAbsent(e.getCode(), e));}public static AbstractClassHandle getHandler(String code) {return CLASS_CODE_ABSTRACT_CLASS_HANDLE_MAP.get(code);}
}
3.4 两个不同的处理类

ClassOneExecuteServiceHandle 班级一

/*** 1班handle类**/
@Component
public class ClassOneExecuteServiceHandle extends AbstractClassHandle {@Overridepublic String getCode() {return ClassEnum.CLASS_1A.getClassCode();}@Overridepublic int getCount() {return ClassEnum.CLASS_1A.getNumberOfStudents();}
}

ClassTwoExecuteServiceHandle 班级二

/*** 2班handle类**/
@Component
public class ClassTwoExecuteServiceHandle extends AbstractClassHandle {@Overridepublic String getCode() {return ClassEnum.CLASS_1B.getClassCode();}@Overridepublic int getCount() {return ClassEnum.CLASS_1B.getNumberOfStudents();}
}
3.5 测试请求类
/*** @author Jerryean* @description 测试策略方式*/
@Api(tags = "测试策略方式")
@RestController
@RequestMapping("/strategy")
public class AbstractTestController {@GetMapping("/abstractTest")@ApiOperation("策略模式-简单测试")public BaseResponse<Integer> abstractTest(@RequestParam(value = "classCode") String classCode) {int count = ClassExecuteServiceFactory.getHandler(classCode).getCount();return BaseResponse.data(count);}
}

四、总结

策略模式非常适合那些需要在运行时动态改变行为的场景。
策略模式是一种非常实用的设计模式,可以帮助开发人员编写更加灵活和可维护的代码。

http://www.yayakq.cn/news/333108/

相关文章:

  • 惠安网站建设报价济南网站建设系统介绍服务
  • 专做hip hop音乐的网站saas平台
  • 外贸网站建设平台绍兴网站建设方案服务
  • 搜狗网站入口网站建设案例精粹 电子书
  • 网站建设需要学什么群晖wordpress外网无法仿问
  • 电商网站设计价格建设公共资源交易中心网站
  • 从旁鼓动人做某事 网站wordpress入门
  • 快递查询网站建设关键词优化顾问
  • 红色网站建设的作用和意义公司网站运营包括哪些方面
  • 营销型网站建设哪个好商丘有哪些网络公司
  • 中国网站建设排名北网站建设
  • 南昌seo网站赣州人才招聘网
  • 保定外贸网站建设服务器维护成本
  • 西安网站开发工程师招聘外国的免费网站网站
  • wordpress 手机模板调用pc内容手机优化怎么解除
  • 免费企业黄页查询网站微信管理系统
  • 提升网站关键词排名腾讯广告
  • 上海住房城乡建设厅网站首页网上做汽配生意的网站
  • 营销型网站怎么收费建设工程类型分为几类
  • 用kid做教育网站域名住房和城乡建设查询平台官网
  • 网页设计网站网站建设课程设计郑州网站营销推广
  • 巩义企业网站托管代运营公司桂林论坛网网站电话
  • 免费网站开发源代码福州 网站开发
  • 网页创建网站网站建设分工说明
  • 做美工好的网站近年网络营销成功案例
  • 深圳罗湖企业网站推广一个服务器可以建几个网站
  • 网站云主机吗百度小程序入口官网
  • 中国建设银行北京分行官网站网站搭建好有什么内容可以修改
  • 浦口区建设中学网站网站侧边栏代码
  • 快速网站推广优化芜湖灵创网站建设