最新要闻
- 【环球报资讯】2023开年火药味儿十足 “大内存”机型卷出了新高度
- 男子卖出游戏账号后3次恶意找回 为何被判盗窃而不是诈骗?
- 世界热推荐:一年节省185亿度电!中车研制复合材料“超级铜”登上央视
- 魔兽国服重开遥遥无期 消息称暴雪找不到接盘方:能谈的都试了
- 每日播报!我想知道知乎现在是怎么了?
- 女子询问换杯 却被奈雪店员辱骂:拒绝出面道歉
- 即时看!70城新房价格指数时隔12个月首次止跌
- 全球观天下!苹果7喇叭灰尘怎么清理 苹果7喇叭灰尘清理的方法
- 全球微动态丨北京多个地铁口有人扫码送“大鹅”:小心隐私泄露
- 游戏《如龙7外传》夜店真人女郎上新:一大波日本纯美小姐姐
- 刘德华剧透《流浪地球3》:"数字生命"延续
- 重点聚焦!被苹果踢出果链后淡化手机业务?欧菲光回应:指纹识别还是龙头地位
- 环球观天下!反结账的钱退到哪里_反结账快捷键
- 豪掷7500万!ChatGPT开发商OpenAI买下极品域名AI.com
- 环球聚焦:为了搞死《霍格沃茨之遗》“黑巫师”们用尽了魔法
- 今日热闻!女子丽江60元买2串烧烤仅6只虫2只蝎 景区回应其吐槽:特色小吃贵
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
读Java实战(第二版)笔记12_重构、测试和调试
(资料图)
1.设计模式
1.1.对设计经验的归纳总结
1.2.一种可重用的蓝图
1.3.Java 5引入了for-each循环
1.3.1.替代了很多显式使用迭代器的情形
1.4.Java 7推出的菱形操作符(<>)
1.4.1.帮助大家在创建实例时无须显式使用泛型
1.4.2.推动了Java程序员们采用类型接口(type interface)进行程序设计
1.5.单例模式
1.5.1.一般用于限制类的实例化,仅生成一份对象
1.6.访问者模式
1.6.1.常用于分离程序的算法和它的操作对象
2.策略模式
2.1.解决一类算法的通用解决方案,你可以在运行时选择使用哪种方案
2.2.一个代表某个算法的接口(Strategy接口)
2.3.一个或多个该接口的具体实现,它们代表了算法的多种实现
2.4.一个或多个使用策略对象的客户
2.5.Lambda表达式避免了采用策略设计模式时僵化的模板代码
3.模板方法模式
3.1.如果需要采用某个算法的框架,同时又希望有一定的灵活度,能对它的某些部分进行改进
3.2.“希望使用这个算法,但是需要对其中的某些行进行改进,才能达到希望的效果”时是非常有用的
3.3.通过传递Lambda表达式,直接插入不同的行为,不再需要继承
3.4.Lamba表达式能帮助解决设计模式与生俱来的设计僵化问题
4.观察者模式
4.1.消除僵化代码
4.1.1.直接传递Lambda表达式表示需要执行的行为即可
4.2.某些事件发生时(比如状态转变),如果一个对象(通常称之为主题)需要自动地通知其他多个对象(称为观察者)
5.责任链模式
5.1.通过定义一个代表处理对象的抽象类来实现的,在抽象类中会定义一个字段来记录后续对象
5.2.UnaryOperator的一个实例
5.2.1.为了链接这些函数,需要使用andThen方法对其进行构造
6.工厂模式
6.1.无须向客户暴露实例化的逻辑就能完成对象的创建
6.2.特殊的函数接口TriFunction
public interface TriFunction{ R apply(T t, U u, V v); } Map> map = new HashMap<>();
7.改善程序代码的可读性
7.1.代码的可读性
7.1.1.别人理解这段代码的难易程度
7.1.2.确保你的代码能非常容易地被包括自己在内的所有人理解和维护
7.2.重构代码,用Lambda表达式取代匿名类
7.3.用方法引用重构Lambda表达式
7.4.用Stream API重构命令式的数据处理
8.从匿名类到Lambda表达式的转换
8.1.“更简洁”来描述Lambda表达式是因为相较于匿名类
8.2.匿名类和Lambda表达式中的this和super的含义是不同的
8.2.1.在匿名类中,this代表的是类自身
8.2.2.在Lambda中,它代表的是包含类
8.3.匿名类可以屏蔽包含类的变量
8.4.Lambda表达式不能(会导致编译错误)
8.5.涉及重载的上下文里,将匿名类转换为Lambda表达式可能导致最终的代码更加晦涩
8.5.1.匿名类的类型是在初始化时确定的
8.5.2.Lambda的类型取决于它的上下文
8.5.3.Task尝试使用显式的类型转换来解决这种模棱两可的情况
8.5.4.NetBeans、Eclipse和IntelliJ都支持这种重构,能自动地帮你检查,避免发生这些问题
9.从Lambda表达式到方法引用的转换
9.1.Lambda表达式非常适用于需要传递代码片段的场景
9.2.尽量将复杂的Lambda表达式抽象到普通方法中
9.3.为了改善代码的可读性,请尽量使用方法引用
9.3.1.利用这种方法能写出非常简洁的代码
9.4.尽量考虑使用静态辅助方法
9.4.1.比如comparing和maxBy
9.4.2.这些方法设计之初就考虑了会结合方法引用一起使用
10.从命令式的数据处理切换到Stream
10.1.Stream API能更清晰地表达数据处理管道的意图
10.2.建议将所有使用迭代器这种数据处理模式处理集合的代码都转换成Stream API的方式
10.3.通过短路和延迟载入以及计算机的多核架构,可以对Stream进行优化
10.3.1.LambdaFicator
11.增加代码的灵活性
11.1.采用函数接口
11.1.1.没有函数接口,就无法使用Lambda表达式
11.2.有条件的延迟执行
11.2.1.控制语句被混杂在业务逻辑代码之中
11.2.2.频繁地从客户端代码去查询一个对象的状态,只是为了传递参数、调用该对象的一个方法,那么可以考虑实现一个新的方法,以Lambda或者方法引用作为参数,新方法在检查完该对象的状态之后才调用原来的方法
11.2.3.代码会因此而变得更易读(结构更清晰),封装性更好(对象的状态也不会暴露给客户端代码了)
11.3.环绕执行
11.3.1.拥有同样的准备和清理阶段
12.测试Lambda表达式
12.1.测试可见Lambda函数的行为
12.2.测试使用Lambda的方法的行为
12.2.1.Lambda的初衷是将一部分逻辑封装起来给另一个方法使用
12.2.2.不应该将Lambda表达式声明为public,它们仅是具体的实现细节
12.3.将复杂的Lambda表达式分为不同的方法
12.3.1.将Lambda表达式转换为方法引用
12.3.2.需要声明一个新的常规方法
12.3.3.用常规的方式对新的方法进行测试
12.4.高阶函数的测试
12.4.1.如果一个方法接受Lambda表达式作为参数,那么你可以采用的一个方案是使用不同的Lambda表达式对它进行测试
13.调试
13.1.查看栈跟踪
13.1.1.由于Lambda表达式没有名字,因此它的栈跟踪可能很难分析
13.2.使用日志调试
13.2.1.流操作方法peek
13.2.2.peek的设计初衷就是在流的每个元素恢复运行之前,插入执行一个动作
读Java实战(第二版)笔记12_重构、测试和调试
【环球报资讯】2023开年火药味儿十足 “大内存”机型卷出了新高度
今日播报!期末复习——同步、互斥、死锁
男子卖出游戏账号后3次恶意找回 为何被判盗窃而不是诈骗?
世界热推荐:一年节省185亿度电!中车研制复合材料“超级铜”登上央视
魔兽国服重开遥遥无期 消息称暴雪找不到接盘方:能谈的都试了
每日播报!我想知道知乎现在是怎么了?
女子询问换杯 却被奈雪店员辱骂:拒绝出面道歉
即时看!70城新房价格指数时隔12个月首次止跌
全球观天下!苹果7喇叭灰尘怎么清理 苹果7喇叭灰尘清理的方法
世界微资讯!汉诺塔
观察:真正“搞”懂HTTPS协议19之HTTPS优化
pnpm的基本原理及快速使用
环球焦点!Windows 环境下安装与配置 Node.js
fusion app远程公告(微云)
全球微动态丨北京多个地铁口有人扫码送“大鹅”:小心隐私泄露
游戏《如龙7外传》夜店真人女郎上新:一大波日本纯美小姐姐
二叉树中某一值的路径之 先序遍历 + 二叉搜索树转化为循环双向链表 之 中序遍历
全球快播:设计模式(八)----创建型模式之建造者模式与工厂模式区别
【全球热闻】真实项目开发中高并发实战经验总结
环球讯息:Python 爬虫方法总结
刘德华剧透《流浪地球3》:"数字生命"延续
重点聚焦!被苹果踢出果链后淡化手机业务?欧菲光回应:指纹识别还是龙头地位
天天微头条丨Vue急速入门-3
Python多任务教程
每日短讯:数据结构刷题2023.02.16小记
全球今日讯!Xcode Swift自动格式化
环球观天下!反结账的钱退到哪里_反结账快捷键
豪掷7500万!ChatGPT开发商OpenAI买下极品域名AI.com
环球聚焦:为了搞死《霍格沃茨之遗》“黑巫师”们用尽了魔法
每日动态!【2023.02.16】威佐夫博弈详解
今日热闻!女子丽江60元买2串烧烤仅6只虫2只蝎 景区回应其吐槽:特色小吃贵
精准发力“二次元”群体:盈通推出“樱瞳水着”RTX 4080显卡
当前快讯:女子吃饭后疯狂打嗝 医生:赶紧转急诊
环球热推荐:全球只有18块!极品飞车特别版RTX 4090现身海鲜市场:要价1.6万
python处理xml文件
天天时讯:因衣服长时间放购物车被客服嘲讽 还被拉黑:遭无数网友吐槽
【热闻】交个朋友公司被曝欠薪、恶意裁员 罗永浩回应:第一时间协调妥善解决
每日快看:1099元 微星PRO MP161便携式显示屏来了:15.6寸IPS屏 仅重0.75kg
高速路上一觉醒来车在冒烟无人驾驶:副驾小伙慌忙跳车逃生
世界时讯:联想拯救者Y9000P 2023游戏本性能狂飙:满血RTX 4090、240Hz高刷
江西芦溪:田园春意浓 乡村美如画
记录--TS类型写不好?一起来训练提升吧!
判断一个给定数组是否为二叉搜索树后序遍历
防患未然 | AIRIOT城市管廊智能运维解决方案
全球今亮点!xcodebuild命令行工具使用详解
今日热文:欧洲2035禁售燃油车!专家:电动车难完全取代燃油车
环球焦点!Wind11新预览版25300发布:实时字幕对中国用户更加友好!
当前时讯:新日登北京电动自行车不合格“黑榜”:多批电池管理系统有问题
新消息丨不愧是玩无人机的 大疆车载产品矩阵揭秘:高阶辅助只需摄像头
这合理吗?公厕免费取纸先关注微信公众号
快资讯丨pip设置镜像
天天头条:String详解
世界时讯:开心档之Swift 访问控制
计算机导论学习记录(二)
全球微头条丨8个让你收入翻倍的高质量免费网站
重点聚焦!大疆Inspire 3无人机来了:配全画幅X9相机、可录8K视频
全球速递!用了电信5G 浙大完成中国首例5G超远程机器人肝胆手术:跨越近万里
总投资389亿!2023年第一条高铁获批:沿海超级通道定了
全球速讯:消息称腾讯XR团队全线解散:成立不到1年!
鄱阳湖旗舰店麻辣小龙虾官方大促:1.4 斤29.9元到手
深交所向新亚制程发出关注函
全球看点:USRP-2974上安装Ubuntu20.04 + UHD 3.15 + GNU Radio 3.8 过程全记录
VOP 消息仓库演进之路|如何设计一个亿级企业消息平台
【热闻】【管理您的整个软件供应链】上海道宁与Sonatype助力您以更安全的开源更快地交付产品
快看点丨西部数据推出22TB/44TB My Book桌面硬盘 售价高达1500美元
曝光交个朋友欠薪 当事人最新回应:罗永浩正积极联系公司解决
果粉买不?苹果折叠屏会先拿iPad试水!折叠iPhone风险太高了
当前热讯:想要过目不忘?进来学两招、保证不后悔!
世界热资讯!12.4万买帕纳梅拉梦碎 首单车主:保时捷傲慢 100万都不卖
环球视讯!OpenYurt v1.2 亮点速览丨云边流量峰值相比原生 K8s 降低 90%
全球百事通!堆叠柱状图怎么用?速戳!
火山引擎数智平台的这款产品,正在帮助 APP 提升用户活跃度
模型预处理层介绍(3) - IntegerLookup
CC1打不通时的另外一条链CC3
天天通讯!襄阳市消防救援训练与战勤保障大队成立
吴刚谈儿子出演《狂飙》高晓晨:既然选择这条路就要自己走
世界即时:尼泊尔载72人客机失事坠毁 初步调查报告:螺旋桨顺桨失去推力
环球信息:2023年铁路春运圆满收官:累计发送旅客3.48亿人次 增长37.4%
【天天速看料】博主分享特斯拉Model 3P一年使用成本:每公里不到4毛
卖手机壳收入百万:300多元的壳十分畅销
今热点:机器学习-随机森林
【世界独家】docker-compose搭建redis-Cluster集群
环球快资讯丨使用docker部署Python-Flask实现ChatGPT的使用
今日要闻!关于nfs服务启动messages日志中报错-Unable to watch /proc/fs/nfsd/clients: No such file
【世界聚看点】特斯拉不好惹!网红车评人“蔡老板”被判道歉赔10万后:还没饶了他
环球热点评!阿里一面:你做过哪些代码优化?来一个人人可以用的极品案例
天天微头条丨豆瓣仅4分!《三体》动画宣布延播两周:3月4日恢复
全球新消息丨等待16年!好莱坞8.1分末日科幻大片《我是传奇》续集定了:“史皇”出演
【时快讯】罗永浩交个朋友公司被曝欠薪 员工:遭到暴力裁员
天天短讯!二次元真香升级!13代游戏本华硕天选4开启预约
大宇获恐怖电影《咒》IP授权:由《轩辕剑柒》主创张蓁元主导开发
全球观点:02月16日09时广东珠海疫情数据 阳了以后为什么会腰疼?应该怎么办?
树的子结构之先序遍历+二叉树的镜像+对称二叉树
快资讯丨一口气说出 6 种实现延时消息的方案,还有谁不会?!
快看:联发科一夜回到两年前:大家都不换新手机了
弟弟陪姐姐看病:双双确诊甲状腺癌
环球观点:RNG拖欠奖金再上热搜!前俱乐部选手站队喊话还钱
报道:父母高度近视:1岁婴儿近视600度
每日播报!Win10/11后:Linux启动AMD处理器fTPM出现同款间歇性卡顿