用一句话来表达设计模式
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
如题,实际上,我想这是很困难的。
除非——只是为了给自己做一个提醒,能够看一眼就快速回想起该设计模式的种种记忆。
下列是我之前在学习《大话设计模式》时做的笔记总结,当中有部分措辞来自其作者程杰。(非常感谢他为神秘的设计模式搭建了如此平滑的学习通道)
1. 创建型:
(1)单例:只需一个实例时考虑。
(2)工厂方法:一般先用工厂方法解决对象创建问题。
(3)抽象工厂:当工厂方法无法满足多系列问题时,再重构为抽象工厂。
(4)建造者:多个部件的建造实现相同,只是所需部件、建造顺序不同时考虑。
(5)原型:在初始化信息不发生变化时考虑。
2. 结构型:
(1)适配器:让接口不相容的类能协同工作。(亡羊补牢)
(2)装饰:动态增加单个对象的额外职责,比生成子类更灵活。
(3)桥接:使继承关系更改为组合关系,使两者可独立变化。(未雨绸缪)
(4)组合:用树状结构表示“整体-部分”的层次关系,使单个对象(叶节点)与组合对象(枝节点)的使用具有一致性。
(5)享元:为运用共享技术,支持大量细粒度对象,节省开销。
(6)代理:控制对单个对象的访问。
(7)外观:子系统的高层接口,避免两个类直接关系的第三者。
3. 行为型:
(1)观察者:一对多依赖关系,一端变化、多端得到通知并自动更新。(目标与观察者可实现弱耦合)
(2)模板方法:继承+重写解决代码重复问题。
(3)命令:将请求发送者与具体实现者解耦,可对请求排列、取消、重做,支持事务。(多请求,单处理)
(4)职责链:将处理者排成链,沿链传递请求。(单请求,多处理)
(5)状态:当对象内状态改变而执行不同操作时考虑,状态转移逻辑不在if/switch中,而在各子类之间,增/改状态和状态转换较容易。
(6)解释器:若某特定问题发生的频率足够高时考虑,需定义文法表示与解释器本身。
(7)中介者:由中介封装一系列对象交互,减少对象间耦合,利于复用。(朋友多)
(8)访问者:当Element较稳定、Visitor易增加时考虑。(朋友在精不在多)
(9)策略:将一系列算法逐个封装并可相互替换,易于切换、理解、扩展。
(10)备忘录:不破坏封装,又要取该对象内状态,且要求状态还原时考虑。(保持封装边界)
(11)迭代器:将对集合的访问与遍历从集合对象中分离出来到迭代器中。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
他把公司卖掉后,给员工发了150个月工资!
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 这是一篇极度体现老板人品的文章,短小,但是句句戳人心,它毫不吝啬地赞美出手阔绰的“创业英雄”Nevzat Aydin。他在卖掉自己公司之后,拿出了 2700 万美元作为奖金分给了 114 名员工,相当于一个普通员工 150 个月的工资。他说:“要是没有这么多员工帮衬我,我不可能把公司做到这样的程度。我当然要员工分享我的成功。”真是一个好老板。看了这篇文章,赶紧把你的老板架在火上烤一会儿。 Yemeksepeti 是一家土耳其的外卖送餐 O2O 公司,可以把它想象成土耳其版的“饿了么”。Nevzat Aydin 是这家公司的 CEO,最近他把这家公司以 5.89 亿美元卖给了德国版的“饿了么”Delivery Hero 公司。(这个世界上好多“饿了么”啊~) 卖掉自己创办的企业,这并不是什么值得提的事情。 但是,Nevzat Aydin 在卖掉自己公司之后,拿出了 2700 万美元作为奖金分给了 114 名员工,每名员工平均可以分到 23 万 7 千美元。 要知道,大部分员工每个月的工资只有 1 千到 2 千美元。N...
- 下一篇
Quora是如何维持高质量代码的
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 一个高质量的代码库可以加快长期开发的速度,因为它会使得迭代、协作和维护更加容易。在Quora,我们十分重视代码库的质量。 除 了会取得收益之外,要维护高质量的代码,会带来一大笔间接费用,还会牺牲实际开发周期。很多人发现,实际产生的收益很难抵消这一间接费用,这时人们会面临 两个选择:要么以低质量代码提升开发速度,要么维护高质量代码而牺牲开发速度。而对于初创公司来说,他们希望开发速度能快一些,所以就不得不使用低质量的 代码。 我们开发了一系列工具和流程,这样就可以在维护高质量代码库的同时,提升开发的速度。在这篇文章中,我们将会介绍关于保证代码质量的一些方法,以及一些平衡这两方面的具体案例。 维护高质量代码的目标 维护高质量代码主要的好处在于能够长期推动开发速度,这也是我们所关注的重点。通过编写清晰代码而产生的短期成本,就可以换来长期的收益。 记住这一点,然后下面是四点基本原则,我们发现对代码质量非常有帮助: Quara的代码质量基本原则 1. 代码的阅读和理解都要很容易——现在的情况是更多的时间用在了代码的阅读上,而不...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音