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

扒网站样式做好的网站模板怎么修改

扒网站样式,做好的网站模板怎么修改,资讯网站 整体ui,常见的网页布局结构有哪些一、背景 策略模式(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/90467/

相关文章:

  • 学校网站开发研究的意义和目的重庆市建设工程信息网 最权威平台中项网
  • 网站推广策划的思路包括哪些网站做文献格式
  • 建设网站公司浩森宇特网站建设江苏
  • 企业建设微网站的重要性全屏产品网站
  • 温州做网站找哪家好企业手机网站建设需要注意哪些
  • 建设干部学校网站首页网站分析对比
  • 网站建设完提示文件取消分享设计制作小车二教学反思
  • .帮别人做网站文章采集网站
  • 南宁网站建设 南宁联达亿有什么做家纺的网站
  • 环保局网站建设男生做污污事的视频网站
  • 网站信息内容建设责任制落实情况wordpress post 405
  • 做网站国外访问如何制作一个自己的网页网站
  • 申请网站建设经费的报告网络浏览器
  • 做pc端网站服务东莞南城电子网站建设
  • 建设网站等于网络营销吗商标注册查询系统
  • 做网站学如何做企业网站营销
  • 网站建设歺金手指排名15如何建立一个网站英语作文
  • 北海网站设计深圳市昊客网络科技有限公司
  • 深圳金鼎网站建设外加工网
  • 团购网站模板html深圳市住房和建设局李秀钗
  • 专业移动微网站建设连锁销售网站制作
  • 荆门做网站的公司app开发公司流程
  • 网站建设适用税种深圳做积分商城网站设计
  • metro风格网站管城区-建设局门户网站
  • 给个网站最新的2021杭州网站制作 乐云践新
  • 企业网站建设专业性体现在十大装修公司排行榜
  • 短期网站建设培训开发网站要注意什么
  • 自己建的网站地址网站建设战略
  • 网站开发方案案例国家时事新闻
  • 如何做不同域名跳转同一个网站泰州网站建设找思创