首页 前端知识 web前端开发网络课程,jquery入口函数的特点,web开发项目实例

web前端开发网络课程,jquery入口函数的特点,web开发项目实例

2024-06-05 13:06:15 前端知识 前端哥 82 80 我要收藏

*/

@RestController

public class BizController {

@Autowired

private BizService bizService;

@PostMapping(“/v1/biz/testSuper”)

public String test2(String order) {

return bizService.getCheckResultSuper(order);

}

}

这是个简单的demo演示,之后会举一些复杂的场景案例。

鲁迅曾说过,“每解决一个问题,就会因出更多的问题”。我们一起来看看这样的实现有什么好处,会带来什么问题。

好处很直观:

  1. 在一段代码里直观的看到"判断条件"与业务逻辑的映射关系

  2. 不需要单独定义接口与实现类,直接使用现有的函数式接口(什么?不知道函数式接口?快去了解),而实现类直接就是业务代码本身。

不好的点:

  1. 需要团队成员对lambda表达式有所了解(什么?Java14都出来了还有没用上Java8新特性的小伙伴?)

接下来我举几个在业务中经常遇到的if else场景,并用Map+函数式接口的方式来解决它

在真实业务场景问题的解决思路


有的小伙伴会说,我的判断条件有多个啊,而且很复杂,你之前举个例子只有单个判断逻辑,而我有多个判断逻辑该怎么办呢?

很好解决:写一个判断逻辑的方法,Map的key由方法计算出

/**

  • 某个业务服务类

*/

@Service

public class BizService {

private Map<String, Function<String, String>> checkResultDispatcherMuti = new HashMap<>();

/**

  • 初始化 业务逻辑分派Map 其中value 存放的是 lambda表达式

*/

@PostConstruct

public void checkResultDispatcherMuitInit() {

checkResultDispatcherMuti.put(“key_订单1”, order -> String.format(“对%s执行业务逻辑1”, order));

checkResultDispatcherMuti.put(“key_订单1_订单2”, order -> String.format(“对%s执行业务逻辑2”, order));

checkResultDispatcherMuti.put(“key_订单1_订单2_订单3”, order -> String.format(“对%s执行业务逻辑3”, order));

}

public String getCheckResultMuti(String order, int level) {

//写一段生成key的逻辑:

String ley = getDispatcherKey(order, level);

Function<String, String> result = checkResultDispatcherMuti.get(ley);

if (result != null) {

//执行这段表达式获得String类型的结果

return result.apply(order);

}

return “不在处理的逻辑中返回业务错误”;

}

/**

  • 判断条件方法

*/

private String getDispatcherKey(String order, int level) {

StringBuilder key = new StringBuilder(“key”);

for (int i = 1; i <= level; i++) {

key.append(“_” + order + i);

}

return key.toString();

}

}

用http模拟一下:

/**

  • 模拟一次http调用

*/

@RestController

public class BizController {

@Autowired

private BizService bizService;

@PostMapping(“/v1/biz/testMuti”)

public String test1(String order, Integer level) {

return bizService.getCheckResultMuti(order, level);

}

}

只要设计好你的key的生成规则就好。

还有小伙伴会问:我的业务逻辑有很多很多行,在checkResultDispatcherMuitInit()方法的Map中直接写不会很长吗?

直接写当然长了,我们可以抽象出一个service服务专门放业务逻辑,然后在定义中调用它就好了:

提供一个业务逻辑单元:

/**

  • 提供业务逻辑单元

*/

@Service

public class BizUnitService {

public String bizOne(String order) {

return order + “各种花式操作1”;

}

public String bizTwo(String order) {

return order + “各种花式操作2”;

}

public String bizThree(String order) {

return order + “各种花式操作3”;

}

}

/**

  • 某个业务服务类

*/

@Service

public class BizService {

@Autowired

private BizUnitService bizUnitService;

private Map<String, Function<String, String>> checkResultDispatcherComX = new HashMap<>();

/**

  • 初始化 业务逻辑分派Map 其中value 存放的是 lambda表达式

*/

@PostConstruct

public void checkResultDispatcherComXInit() {

checkResultDispatcherComX.put(“key_订单1”, order -> bizUnitService.bizOne(order));

checkResultDispatcherComX.put(“key_订单1_订单2”, order -> bizUnitService.bizTwo(order));

checkResultDispatcherComX.put(“key_订单1_订单2_订单3”, order -> bizUnitService.bizThree(order));

}

public String getCheckResultComX(String order, int level) {

//写一段生成key的逻辑:

String ley = getDispatcherComXKey(order, level);

Function<String, String> result = checkResultDispatcherComX.get(ley);

if (result != null) {

//执行这段表达式获得String类型的结果

return result.apply(order);

}

return “不在处理的逻辑中返回业务错误”;

}

/**

  • 判断条件方法

*/

private String getDispatcherComXKey(String order, int level) {

StringBuilder key = new StringBuilder(“key”);

for (int i = 1; i <= level; i++) {

key.append(“_” + order + i);

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
img

文末

如果30岁以前,可以还不知道自己想去做什么的话,那30岁之后,真的觉得时间非常的宝贵,不能再浪费时间在一些碎片化的事情上,比如说看综艺,电视剧。一个人的黄金时间也就二,三十年,不能过得浑浑噩噩。所以花了基本上休息的时间,去不断的完善自己的知识体系,希望可以成为一个领域内的TOP。

同样是干到30岁,普通人写业务代码划水,榜样们深度学习拓宽视野晋升管理。

这也是为什么大家都说30岁是程序员的门槛,很多人迈不过去,其实各行各业都是这样都会有个坎,公司永远都缺的高级人才,只用这样才能在大风大浪过后,依然闪耀不被公司淘汰不被社会淘汰。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

浪过后,依然闪耀不被公司淘汰不被社会淘汰。

269页《前端大厂面试宝典》

包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

前端面试题汇总

JavaScript

转载请注明出处或者链接地址:https://www.qianduange.cn//article/10856.html
标签
评论
发布的文章

基于Vue2的ofd文件预览

2024-06-10 11:06:28

网页快速置灰效果

2024-06-10 11:06:17

HTML5 CSS——Day6

2024-06-10 11:06:11

HTML5 CSS3面试题整理

2024-05-05 22:05:21

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!