最新要闻
- 胡伟武:Linux桌面软件生态是x86和ARM“软肋” 龙芯希望一两年后全面超过
- 丰田总裁再度质疑电动汽车:这会让车企降低价值!
- 每日资讯:RTX 4090加持:ROG发布新款XG Mobile显卡坞
- 即时:三星发布全球首款8K 150寸投影仪:离墙几毫米即可完成投射
- 焦点热文:画面太美!男子意外发现交通卡余额有172万 官方回应真相无奈
- 环球即时看!宏碁发布eKinekt BD 3酷骑桌:工作之余还能骑动感单车
- 世界热讯:1.6亿美元是罚定了!印度法庭驳回谷歌推翻垄断案的请求
- 当前热点-17万元起真香!奇瑞最高颜值SUV星途瑶光盲订量已达6012台
- 环球热点评!2022广州车展压轴登场 这八款新能源新车千万不要错过
- 今头条!全新NT架构加持!腾讯QQ原生上架麒麟应用商店
- 天天微资讯!国产可乐为什么都在陆续消失?专家道出原因
- 哄娃神器 一公司推出可自动驾驶婴儿车:售价约2.2万人民币
- 画风有《魔兽》那味了:国产多端MMO《塔瑞斯世界》PV首曝
- 【环球热闻】男子一口气网购20个26元扫地机器人:场面壮观实测失望
- 男子为研究显卡到网吧一口气拿7块:网友调侃要都是4090赚大
- 实时:C罗说世界杯唯一赢阿根廷的是沙特 这里是新挑战 不是养老
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
看点:设计模式简单介绍
(资料图片)
注:所有知识来源于《设计模式:可复用软件面向对象的基础》
1 什么是设计模式
Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。”一般而言,一个模式有四个基本要素:模式名(pattern name)用一两个此来描述模式的问题、解决方案和效果。问题(problem)描述了应该在何时使用模式,解释了设计问题和问题存在的前因后果,可能描述了特定的设计问题,也可能描述了导致不灵活设计的类或对象结构,有时候问题部分会包括使用模式必须满足的一系列先决条件。解决方案(solution)描述了设计的组成部分、他们之间的相互关系及各自的职责和协作方式。不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合来解决这个问题。效果(consequence)描述了模式应用的效果及使用模式应权衡的问题。设计模式命名、抽象和确定了一个通用设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。设计模式确定了所包含的类和实例,它们的角色、协作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍。
2 描述设计模式
使用统一的格式描述设计模式有助于学习、比较和使用设计模式。模式名和分类模式名简洁地描述了模式地本质,分类主要是使用该模式的目的。意图意图是回答“设计模式是做什么的?它的基本原理和意图是什么?它解决的是什么样的特定设计问题?”别名模式的其他名称动机用以说明一个设计问题以及如何用模式中的类、对象来解决该问题的特定情景。适用性什么情况下可以使用该设计模式?该模式可用来改进哪些不良设计?怎么识别这些情况?结构原书是采用基于对象建模技术(OMT)[RBP+91]的表示法对模式中的类进行图形描述,使用了交互图[JCJO92,BOO94],我会采用统一建模语言UML来进行描述。参与者指设计模式中的类和/或对象以及他们各自的职责。协作模式的参与者怎样协作以实现他们的职责。效果模式怎样支持它的目标?使用模式的效果和所需做的权衡是什么?系统结构的哪些方面可以独立改变?实现实现模式时需要知道的一些提示、技术要点及应避免的缺陷,以及是否存在某些特定于实现语言的问题。代码示例使用具体的编程语言进行实现,原文采用C++或Smalltalk,我会采用Java来进行实现。已知应用实际系统中发现的模式的例子。相关模式与这个模式紧密相关的模式有哪些?期间重要的不同之处是什么?这个模式应与哪些其他模式一起使用?
3 23种设计模式一句话介绍
表1 设计模式的分类
目的 | ||||
---|---|---|---|---|
创建型 | 结构型 | 行为型 | ||
范围 | 类 | Factory Method | Adapter | InterpreterTemplate Method |
对象 | Abstract FactoryBuilderPrototypeSingleton | AdapterBridgeCompositeDecoratorFacadeFlyweightProxy | Chain of ResponsibilityCommandIteratorMediatorMementoObserverStateStrategyVisitor |
图1 设计模式之间的关系
3.1 创建型
Abstract Factory抽象工厂模式,提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。Builder建造者模式,将一个复杂对象的构建与它的实现部分分离,使它们都可以独立地变化。Factory Method工厂方法模式,定义一个用于创建对象的接口,让子类决定将哪一个类实例化,是一个类的实例化推迟到其子类。Prototype原型模式,用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。Singleton单例模式,保证一个类仅有一个实例,并提供一个访问它的全局访问点。
3.2 结构型
Adapter适配器模式,将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。Bridge桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。Composite组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,是的客户对单个对象和组合对象的使用具有一致性。Decorator装饰器模式,动态地给一个对象添加一些额外的职责,就扩展而言,Decorator比生成子类方式更为灵活。Facade外观模式,为子系统中的一组接口提供一个一致的界面,定义了一个高层接口,这个接口使得这一子系统更容易使用。Flyweight享元模式,运用共享技术有效地支持大量细粒度的对象。Proxy代理模式,为其他对象提供一个代理以控制对这个对象的访问。
3.3 行为型
Chain of Responsibility职责链模式,接触请求的发送者和接收者之间的耦合,是多个对象都有机会处理这个请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。Command命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以支持可取消的操作。Interpreter解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。Iterator迭代器模式,提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。Mediator中介者模式,用一个中介对象来封装一些列的对象交互,中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。Memento备忘录模式,在不破坏封装性的前提下捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可以将该对象恢复到保存的状态。Observer观察者模式,定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动刷新。State状态模式,允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它所属的类。Strategy策略模式,定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法的变化可独立于使用它的客户。Template Method模板方法模式,定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method 使得子类不改变一个算法的结构即可重定义该算法的某些特定的步骤。Visitor访问者模式,表示一个作用于某对象结构中的各元素的操作,使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。
看点:设计模式简单介绍
胡伟武:Linux桌面软件生态是x86和ARM“软肋” 龙芯希望一两年后全面超过
丰田总裁再度质疑电动汽车:这会让车企降低价值!
每日资讯:RTX 4090加持:ROG发布新款XG Mobile显卡坞
即时:三星发布全球首款8K 150寸投影仪:离墙几毫米即可完成投射
焦点热文:画面太美!男子意外发现交通卡余额有172万 官方回应真相无奈
天天速看:写给大忙人看的Go语言快速指南(中文翻译)
天天实时:[概率论与数理统计]笔记:2.2 随机变量的数字特征
Python:numpy模块最详细的教程
python3实现字符串的全排列的方法(无重复字符)两种解决方法
全球快播:python中可以处理word文档的模块:docx模块
环球即时看!宏碁发布eKinekt BD 3酷骑桌:工作之余还能骑动感单车
世界热讯:1.6亿美元是罚定了!印度法庭驳回谷歌推翻垄断案的请求
当前热点-17万元起真香!奇瑞最高颜值SUV星途瑶光盲订量已达6012台
环球热点评!2022广州车展压轴登场 这八款新能源新车千万不要错过
今头条!全新NT架构加持!腾讯QQ原生上架麒麟应用商店
天天微资讯!国产可乐为什么都在陆续消失?专家道出原因
哄娃神器 一公司推出可自动驾驶婴儿车:售价约2.2万人民币
画风有《魔兽》那味了:国产多端MMO《塔瑞斯世界》PV首曝
【环球热闻】男子一口气网购20个26元扫地机器人:场面壮观实测失望
男子为研究显卡到网吧一口气拿7块:网友调侃要都是4090赚大
环球微资讯!Float value issue in GLSL
【环球热闻】事件总线 + 函数计算构建云上最佳事件驱动架构应用
实时:C罗说世界杯唯一赢阿根廷的是沙特 这里是新挑战 不是养老
配大哥H9同款2.0T 国产豪华轿跑红旗H6官图发布:罕见中置双排气
全球热头条丨微软再次挑战谷歌:Bing或将推出ChatGPT AI版本
【全球时快讯】一加首次推出100W双口充电器:支持65W PD快充 首发229元
世界观点:华系车崛起!欧洲每10台新能源汽车 就有1台来自中国
MySQL——索引
全球关注:易基因|METTL3 通过调节m6A 修饰抑制口腔鳞状细胞癌安罗替尼敏感性 | 肿瘤研究
环球今头条!苹果app怎么上架
天天看热讯:有史以来第一个6GHz CPU i9-13900KS现身中国!要卖6500元?
【当前热闻】3999元用4年依然流畅!一加11开启预售
热头条丨奥迪A6L提车三天出问题 4、5挡异响!4S店同意退车
热文:河南一女生118元买网红甜品巴斯克蛋糕 收到后吐槽像烧饼:生日毁了
环球动态:60多岁男子高速逆行撞废比亚迪新车 刚提一个月心疼不已
JS逆向实战10——某集团RSA长加密
WINDOWS文本编辑器丨EmEditor功能简介
天天最资讯丨中国首批电子后视镜来了 吉利旗下路特斯首搭
微头条丨1000元大额券:骆驼户外徒步鞋179元起、夹棉冲锋衣199元起
长安马自达旗舰SUV大促:优惠7万多、还送5万公里延保
杨迪在淘宝真的火 阳敌手机壳搜索量暴涨2300倍
一加11搭载三星2K柔性微曲屏:安卓首发随帧变动技术
【K哥爬虫普法】大数据风控第一案:从魔蝎科技案件判决,看爬虫技术刑事边界
简讯:通过持续交付提升发布效率
三款免费强大的SSH工具食用指南
焦点速递!Rpmbuild原码打包成rpm包
微速讯:App在苹果上架难吗
快讯:00后员工吐槽老板创意土被约谈 网友:老一辈审美观需升级
苹果妥协了!iOS第三方商店有望上线:欧洲iPhone专享
全球新动态:女子关窗围炉煮茶3小时致一氧化碳中毒:医生科普紧急救助办法
天天即时看!北京2人坠冰身亡 专家科普发现冰面破裂该如何自救
今日快讯:IO、NIO、BIO傻傻分不清吗,让我对象告诉你~~
游客误把燃香扔进400年文物里:网友心痛!科普雍和宫须弥山
专家称《原神》唯美:展现出我国的高现代化水准
今头条!尚硅谷Vue2.0+3.0的笔记资料(cli开始)
天天消息!docx替换word属性打勾
【天天播资讯】贾跃亭的法拉第未来重返2023年CES FF 91完成一系列升级
【速看料】二手车商亏哭!日系车保值“神话”破灭 国人无视省油、小毛病少爱上新能源
全球今热点:曾称污染比燃油车更大!丰田章男再度质疑电动车
郑州大气!明日10点起发放年货消费券:全国用户都能用
每日速读!全球首款!外星人推出24.5寸500Hz IPS电竞显示器:0.5ms急速响应
浅析 Dubbo 3.0 中接口级地址推送性能的优化
环球快报:行走的救护员!凯迪拉克车主把AED放车上:还允许破窗使用
焦点!特斯拉自动辅助驾驶追尾事故车辆 前车车主当场被吓懵
Win11 22H2又出新Bug:文件管理器随机“突然出现”
【独家焦点】动物也懂协同合作 两只雪豹一起偷鸡:一只踩点、一只放哨
天天播报:雷军:相信旗舰机会全部标配无线充电
环球快资讯:实战Flink sql语法改造
快讯:上映仅半个月 《阿凡达2》拿下2022全球票房年度冠军:超越《壮志凌云2》
当前通讯!现货:抗原检测试剂盒3.9元/份(顺丰包邮)
NVIDIA发布RTX视频超分辨率技术:看视频也有“DLSS”了
世界新资讯:时隔15年 Qi2无线充电标准官宣:基于苹果MagSafe打造 磁吸将降临安卓
面试官:Docker 有几种网络模式?5 年工作经验都表示答不上来。。
梦想云图Node.JS服务 (网页CAD,在线CAD )
每日看点!upload-lab靶场
世界讯息:电动车充电自燃一家4口不幸遇难 现场惨烈:网友感慨为何在家充电?
百事通!新势力年交付突破百万背后 谁得意 谁失意?
环球新消息丨安卓阵营绝无仅有!一加11屏幕体验最接近苹果iPhone ProMotion
全球焦点!售价或低于20万 特斯全新入门新车效果图曝光:颜值挺高
焦点要闻:祖传1200万像素要终结!曝苹果iPhone 15将配备4800万像素
滑雪不会刹车女生一路靠吼下坡 网友调侃练河东狮吼:医生科普受伤有多严重
环球新动态:一加11今天发!起步就是12GB+256GB 拒绝凑数卡价位
PC主机消失不可避免:备胎随时上位
快看点丨华硕ROG发布首款四频Wi-Fi 7八爪鱼游戏路由:25Gbps、三万兆网口
天天实时:太突然!国产饮料巨头宣布破产:一代名饮国产可乐退场网友唏嘘
焦点播报:增程车是必然被淘汰的技术 谁买坑谁?理想、华为反驳
世界通讯!Spring IOC官方文档学习笔记(六)之自定义bean的特性
数据结构作业(三):直接插入排序 和 归并排序
当前信息:就因为一张朋友圈截图 全国的蒙脱石散都卖光了
只需钻入地下几千米 就有无穷能源!为啥没人干呢?
3000万用户数据泄露:这一次 我们的推荐翻车了
环球热消息:奇闻:为了保护疫苗 200多年前 竟然用孤儿活体运输
全球看热讯:VR:新一代年轻人的鸽王终结者
【前端调试】- 更好的调试方式 VSCode Debugger
世界观点:Python转义字符理解
全球微头条丨大疆官宣手持稳定器新品:RS 3 mini来了
消息!银白装甲!华硕ROG STRIX B760-G GAMING WIFI D4小吹雪主板图赏
微星发布全新B760系列主板:共四款 ITX刀锋小板来了
要闻速递:情侣在酒店电视机拆出针孔摄像头 已发出十几个TB的视频