最新要闻
- 万达信息:公司DIP项目不涉及数字人民币支付
- 焦点速看:男子和路过小朋友对暗号唱挖呀挖:没想到小朋友齐声对唱
- 世界热头条丨男子10万块买8套房 鹤壁房子1000元一套?官方回应
- 焦点要闻:全自动空中列车!数万名人已乘坐比亚迪大王山云巴
- 《王者荣耀》女装定价超千元 网友:不如去抢-环球今头条
- 世界播报:18片双环扇叶:先锋电风扇69元起官方大促抄底(170元券)
- 古润金被警方拘留 古润金_全球快播
- 尚纬股份: 截至3月31日,公司股东总数约为2.4万户-焦点热讯
- 威联通NAS新品TS-466C发布:影音转码升级 插上HDMI线就能看片
- 4年前的GTX 1650荣光犹在!Steam硬件占有率第一
- 安卓亲儿子又翻车 谷歌Pixel 6系列手机耗电bug:续航崩了
- RTX 3060 Ti即将停产:疯狂杀价700元!赔本清库存|快看点
- “永生”干细胞培养肉问世:有望实现人造肉无限量供应
- 长江上的“移动垃圾站” 环球聚焦
- 环球观速讯丨光正眼科(002524.SZ):眼科板块前四个月预算完成率100%以上,年度经营目标有望实现
- 广告太多引众怒:微软被迫删除Win11天气部分推广 焦点快报
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
作业二:读书笔记-简讯
这个作业属于哪个课程 | 软件代码开发技术 |
---|---|
这个作业要求在哪里 | 作业二 |
这个作业的目标 | 学习软件设计模式和原则 |
一、准备工作
名称 | 作者 | 链接 |
---|---|---|
《软件秘笈:设计模式那点事》(本文使用) | 郑阿奇 | 链接 |
《软件设计模式》 | 朱洪军 | 链接 |
二、归纳总结
什么是软件设计模式?
模式就是经验的总结。设计模式就是被反复使用,经过梳理总结的代码设计经验。使用设计模式的能够提高代码的可重用性,并且让程序更加安全可靠。
(相关资料图)
软件设计的分类?
按目的分,设计模式可以分为创建型模式、结构型模式和行为型模式。创建型模式用来处理对象的创建过程;结构型模式用来处理类或对象组合;行为型模式用来对类或对象怎么交互和怎样分配职责进行描述。
设计模式
创建型模式
- 工厂方法模式:定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对那个。
- 抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类
- 建造者模式:复杂对象的创建与表示分离同样的构建过程可以创建不同的表示。
- 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象
- 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点
结构型模式
- 适配器模式:将一个类的接口转换成客户希望的另外一个接口
- 桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化
- 组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构
- 装饰者模式:动态地给一个对象添加一些额外的职责
- 外观模式:为子系统中的一组接口提供一个一致的界面
- 享元模式:运用共享技术有效地支持大量细粒度的对象
- 代理模式:为其他对象提供一种代理以控制对这个对象的访问
行为型模式
责任链模式
命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作
解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子
迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示
中介者模式:用一个中介对象来封装一系列的对象交互
备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态
观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新
状态模式:允许一个对象在其内部状态改变时改变它的行为
策略模式:定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
访问者模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中
(是书上定义)
设计模式六大原则
- 开-闭原则:对拓展开发,对修改关闭
- 单一职责原则:一个类只负责一个任务功能
- 依赖倒置原则:上下层不应该相互依赖,两者都应该依赖其抽象。细节依赖于抽象
- 接口隔离原则:接口中不存在派生类用不到却必须实现的方法
- 里式替换原则:使用父类的地方一定能用派生类,子类不能重写父类非抽象方法。
- 迪米特法则:尽量不要让实体类之间建立直接调用,最好通过其友元来建立中转关系。
三、心得体会
//结合自己曾经的软件开发实践,思考用到了哪些原则或模式?谈谈读书的心得体会。
这是leecode上得到一道题,给你一个整数数组 nums
,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。在做题的时候我没有使用辅助函数。
class Solution {public: int findPeakElement(vector& nums) { int n = nums.size(); int l = 0, r = n - 1; if(n == 1||nums[0] > nums[1]){ //在峰值,直接输出 return 0; } if(nums[r - 1] < nums[r]){ //在峰值,直接输出 return r; } while(l < r){ int mid = (l + r + 1) / 2; if(nums[mid - 1] < nums[mid] && nums[mid] > nums[mid + 1]){ //在峰值,直接输出 return mid; } else if(nums[mid] < nums[mid + 1]){ //峰底或者上升,往右一定有峰 //在峰低往两边都行,智慧得随便选择了一遍 l = mid; } else if(nums[mid] > nums[mid + 1]){ //下降峰,往左一定有峰 r = mid - 1; } } return -1; }};
通过增加一个辅助函数,让函数的目标更清晰,代码编写也变得更加简洁。每个函数的职责更加单一,符合设计模式六大原则中的单一职责原则。
class Solution {public: int findPeakElement(vector& nums) { int n = nums.size(); // 辅助函数,输入下标 i,返回一个二元组 (0/1, nums[i]) // 方便处理 nums[-1] 以及 nums[n] 的边界情况 auto get = [&](int i) -> pair { if (i == -1 || i == n) { return {0, 0}; } return {1, nums[i]}; }; int left = 0, right = n - 1, ans = -1; while (left <= right) { int mid = (left + right) / 2; if (get(mid - 1) < get(mid) && get(mid) > get(mid + 1)) { ans = mid; break; } if (get(mid) < get(mid + 1)) { left = mid + 1; } else { right = mid - 1; } } return ans; }};
四、博文编辑界面截图
关键词:
作业二:读书笔记-简讯
Python工具箱系列(三十二)
Linux-LVM的介绍、创建、删除-世界微动态
世界头条:AI低代码,或将再次颠覆开发行业
axios CancelToken 实现对特定请求的拦截,不要所有请求都进行相同的拦截
环球观察:【新华财经调查】碳酸锂拍卖“试探”市场预期 价格何时回归理性?
今热点:【金融街发布】外汇局:4月银行结汇1869亿美元 售汇1815亿美元
万达信息:公司DIP项目不涉及数字人民币支付
焦点速看:男子和路过小朋友对暗号唱挖呀挖:没想到小朋友齐声对唱
世界热头条丨男子10万块买8套房 鹤壁房子1000元一套?官方回应
焦点要闻:全自动空中列车!数万名人已乘坐比亚迪大王山云巴
《王者荣耀》女装定价超千元 网友:不如去抢-环球今头条
世界播报:18片双环扇叶:先锋电风扇69元起官方大促抄底(170元券)
古润金被警方拘留 古润金_全球快播
【jmeter】win10部署jmeter分布式 全球最资讯
最新快讯!针对基于智能卡进行认证的活动目录攻击
Lua 备忘清单_开发速查表分享
vue 基于原生动画的自动滚动表格
【BSP视频教程】BSP视频教程第26期:CAN/CANFD/CANopen专题,CANFD整个运行机制精讲,图文并茂,配合综合实战演练(2023-05-15)
全球新消息丨上交所将召开沪市金融业专题座谈会 讨论促进金融业估值提升
【世界时快讯】收评:沪指午后逆转涨1.17%收复3300点 新能源赛道股大涨
尚纬股份: 截至3月31日,公司股东总数约为2.4万户-焦点热讯
威联通NAS新品TS-466C发布:影音转码升级 插上HDMI线就能看片
4年前的GTX 1650荣光犹在!Steam硬件占有率第一
安卓亲儿子又翻车 谷歌Pixel 6系列手机耗电bug:续航崩了
RTX 3060 Ti即将停产:疯狂杀价700元!赔本清库存|快看点
“永生”干细胞培养肉问世:有望实现人造肉无限量供应
长江上的“移动垃圾站” 环球聚焦
全球热点评!问鼎CodeXGLUE榜单,华为云UniXcoder-VESO-v1算法取得突破
天天热点评!湖北省智能科教研究会走进璞华,调研璞公英教学平台个性化教学新模式
环球观速讯丨光正眼科(002524.SZ):眼科板块前四个月预算完成率100%以上,年度经营目标有望实现
广告太多引众怒:微软被迫删除Win11天气部分推广 焦点快报
顾客买肉饼咬下去发现全是活虫:商家赔了10块钱_世界动态
Win10成绝唱!微软开始催更:给用户狂弹窗 快点升级Windows 11
全球今日报丨看齐Ultra!小米14 Pro曝光:长焦影像大升级
一盒尝鲜也包邮!春光一口鲜气0糖椰汁大促:券后每瓶9块9
Linux-RAID类型介绍、创建、彻底删除_天天快报
在ASP.NET Core中轻松使用JwtBeare进行身份验证
Golang基础教程
Mongodb 以及 node.js中使用mongoose操作数据库
每日看点!MYSQL数据库之事务隔离级别详解
损失条款
不喜欢别看!网飞黑人《埃及艳后》史诗级翻车 差评多到不忍直视
年度大改款!联发科下一代旗舰命名确认:天玑9300_焦点热门
骨灰级程序员 20多年经验IT大牛左耳朵耗子陈皓突发心梗去世 享年47岁-世界简讯
特斯拉中国召回110万辆:是真心 还是假意?
今热点:硬挑苹果!华为赚麻:增加万元折叠新机Mate X3订单 出货量或将翻倍
世界热文:白酒板块午盘走弱 贵州茅台股价下滑0.22%
接单日记(四)验证码图片生成|全球今头条
日系“药丸”?日产发布2022财年业绩:收益远超预期|热推荐
环球头条:卢伟冰揭秘Redmi Book 14:4000元档四大升级 厂商良心所在
地铁咋调头 有司机吗?看完本文你比地铁司机还懂
亚洲或将面临超级高温“烤”验:多国已破40℃ 厄尔尼诺现象要来了-环球热文
联想拯救者Y9000P冰魄白游戏本开卖 24核i9+RTX 4070仅售12499元 当前头条
俄媒:一天之内数架俄军机在俄乌边境坠毁 即时
Stimulsoft Report/Group Report报表类型简单实现|每日头条
系统错误:找不到mvcp120d.dll,无法继续执行代码
天天快播:ntp时钟服务器(ntp授时服务器)技术参数一览表
焦点短讯!宝兰德应用服务器软件与华为云GaussDB完成兼容互认证
顶象助力如祺出行打造高品质服务
全球快看:北向互换通正式上线
世界短讯!萍乡一男子利用职务便利侵占公司财物获刑
独悬变扭力梁、气囊也减配 新款丰田卡罗拉上市定档:价格或史低 当前热文
对标苹果iPad Air!华为MatePad Air真机首曝:LCD屏、骁龙888|世界新消息
全球今亮点!6月9日上映!《变形金刚7:超能勇士崛起》中文海报/角色介绍发布
110万的仰望U8领衔!多款硬派SUV申报:奇瑞这款最值得期待
超强辨识度!比亚迪腾势N7夜晚亮灯实拍:“世界级SUV”感受下 焦点热议
全球快资讯丨2023宁波技工学校新设置专业有哪些
每日热文:Grafana系列-统一展示-10-Explore Jaeger
环球微速讯:江南华南北部多降雨过程 华北黄淮等地将有高温过程
德意志银行顺利完成“互换通”下首笔交易
定档5月22日 Redmi Book 14官宣:重新定义4000元档轻薄本|天天热闻
特斯拉幕后舵手曝光 他是马斯克接班人?
热热热!北方将刷新今年来气温新高:首轮高温局地超37℃_精选
焦点信息:网飞黑人《埃及艳后》IMDb仅1.1分 近3万人给出1分
1TB只要2599元 真我11 Pro系列首销战报来了:销量破8万台 速讯
世界速看:河南太康清集镇:扎实做好防返贫动态监测帮扶工作
20230515学习笔记——js中的同步任务与异步任务,宏任务与微任务
世界快报:序列检测器(两种设计方法和四种检测模式|verilog代码|Testbench|仿真结果)
天天热资讯!Linux文件查找命令之locate与find
从3s到25ms!看看京东的接口优化技巧,确实很优雅!! 当前速递
碳酸锂市价止跌急涨 需求兑现仍需时日 全球速递
全球焦点!伯利时代首冠切尔西女足主帅:男队表现不佳,冠军献给球迷
售价10万以内 “电动吉姆尼”宝骏悦也内饰官图:小车也有双联屏
天天快消息!肉丸、鸡架超满足:东北抚顺麻辣拌6.6元/盒清仓大促
AI孙燕姿大火!央视提醒:AI歌手翻唱或涉多项侵权行为
环球新动态:断轴!韩系豪华车捷尼赛思GV60上市两个月就召回
罕见!北方今年首轮高温来袭:山东要热成灿东了 局地39度 天天快播
java~"与运算"实现保留一个数的低8位 速看
一键斩断伸向孩子的“黑手” 36名未成年人被救助-精选
提速至140km/h!浙江最快高速公路来了:杭州到宁波仅1小时
就像买菜!男子花10万块买了8套房 最便宜一套1000元:网友感慨 天天滚动
遥遥领先苹果!余承东:华为WATCH4系列首发血糖评估 环球速看料
全国最大高铁“驾校”揭秘:16台模拟驾驶实训舱 如同开真高铁
全球热门:假把式!小区监控探头是粘上的,限期整改!
两类存款利率加点上限调整今起执行 部分中小银行迅速行动
你手机装了几款APP?人均安装31个APP 年龄越小装的越多
摊主再回应买彩票中2574万 21人合买有钱一起赚:买一股能分百万 都分到钱
没人看了?美国付费有线电视用户跌至30年最低
如何使用多米诺骨牌作为派对主题_什么生日礼物送学生朋友最合适男生 世界简讯