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

校园网站服务建设高端h5网站开发

校园网站服务建设,高端h5网站开发,花关键词排名系统,手机端网站界面如何做【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 目录 【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等 优势 适用场景 项目结构 关键代码 优势 消除 switch:将分支逻辑分散到独立的策略类中。 开闭原则:新增类型只需添加新的 TypeHa…

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等

目录

【设计模式】JAVA 策略 工厂 模式 彻底告别switch if 等

 优势

 适用场景

项目结构

关键代码


 优势

  • 消除 switch:将分支逻辑分散到独立的策略类中。

  • 开闭原则:新增类型只需添加新的 TypeHandler 实现类,无需修改已有代码。

  • 依赖注入:由 Spring 管理 Bean 生命周期,天然支持单例、原型等作用域。

  • 易于测试:每个策略类可单独测试,工厂类可通过 Mock 注入。

 适用场景

  • 类型数量庞大(如上百种)。

  • 不同类型的处理逻辑独立且可能频繁变更。

  • 需要动态扩展支持新类型。

项目结构
src/main/java
├── com.example.demo
│   ├── handler
│   │   ├── TypeHandler.java
│   │   ├── TypeAHandler.java
│   │   ├── TypeBHandler.java
│   │   └── DefaultHandler.java
│   ├── factory
│   │   └── TypeHandlerFactory.java
│   └── service
│       └── BusinessService.java

关键代码
// TypeHandler.java
public interface TypeHandler {void handle();String getType();
}// TypeAHandler.java
@Component
public class TypeAHandler implements TypeHandler {@Overridepublic void handle() { System.out.println("处理类型A"); }@Overridepublic String getType() { return "A"; }
}// TypeHandlerFactory.java
@Component
public class TypeHandlerFactory {private final Map<String, TypeHandler> handlerMap;@Autowiredpublic TypeHandlerFactory(List<TypeHandler> handlers) {handlerMap = handlers.stream().collect(Collectors.toMap(TypeHandler::getType, handler -> handler));}public TypeHandler getHandler(String type) {return Optional.ofNullable(handlerMap.get(type)).orElseThrow(() -> new IllegalArgumentException("未知类型: " + type));}
}// BusinessService.java
@Service
public class BusinessService {private final TypeHandlerFactory handlerFactory;@Autowiredpublic BusinessService(TypeHandlerFactory handlerFactory) {this.handlerFactory = handlerFactory;}public void process(String type) {handlerFactory.getHandler(type).handle();}
}

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

相关文章:

  • 资深网站沈阳沈河seo网站排名优化
  • 定陶住房和城乡建设局网站最珠海app下载安卓版
  • 建设企业网站e路护航报价公司
  • 制作网站建设拓扑图软件怎么自己做网站qq
  • 软件开发网站开发学习wordpress文章上传不了
  • 泉州做网站工资做网站用哪个编程语言
  • 必应搜索引擎网站建设168网站
  • 设计素材网站p开头的大淘客官网做的网站打不开
  • 设计师服务平台台西seo优化排名
  • wordpress 音乐站主题杭州优化外包
  • dw做的网站怎样才有域名网络营销方式的优缺点
  • 网站开发代码 免责声明php的网站数据库如何上传
  • 茂名建设公司网站东莞网站设计推荐易维达2
  • 做网站后台主要负责什么做网站至少要花多少钱
  • 网站建设教育培训网络舆情管控措施
  • 常州自助做网站建设部城市管理监督局网站官网
  • 如何看到网站做哪些关键字ppt链接网站怎么做
  • 做 个收废品网站注册50万公司一年税是多少
  • 用织梦做的公司网站 经常被攻击网站被攻击的方法
  • 漂亮的网站底部代码搭建 wordpress
  • 襄阳文明建设投诉网站php网站怎么做seo
  • 大鹏网络网站建设报价未来电子商务发展前景
  • 网站开发前端好还是后端好网站建设和维护合同书
  • 手机网站前端开发布局技巧做网站 当站长
  • 凡科网制作网站教程做网站生成二维码
  • 中国外贸网站深圳网站设计制作公司 维仆
  • 如何判断一个网站的关键词是否难做购物平台官网
  • 做网站的公司高创网站建设投标人资质
  • 湖北好的快速排名系统西安seo培训机构
  • 蘑菇街网站建设方案wordpress域名修改