摘要: 引言 备忘录模式是非常简单的一种模式,应用场景非常广泛,如编辑器的ctrl + z、数据库事务的回滚、游戏的存档等等都符合该模式的思想——备份(比较疑惑为什么叫备忘录模式,叫备份模式不是更贴切么?)。 详解 备忘录模式就是将一个对象的内部状态保存到对象的外部,这样,在将来的任一时间点都可以恢复到之前 阅读全文
posted @ 2019-05-04 18:41 夜勿语 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 引言 在面向对象编程中,无可避免的是对象之间的引用,引用给我们带来便捷(对象的复用),但同时也会给类与类之间造成强依赖关系。在一对一的关系中,这看起来并不会造成什么不良的影响,但若是在一对多中,修改任意的一个对象,都会影响到其它调用者,形成强耦合。 中介者 如同上面的图,当对象之间形成网络结构之后, 阅读全文
posted @ 2019-05-03 18:35 夜勿语 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 前言 解释器模式在平时基本上用不到,因此笔者也不打算花太多精力在这上面,但强迫症使然,所以翻译了GeeksForGeeks上面的一篇文章,本文采取意译及注解方式,原文链接Interpreter Pattern 译文 解释器模式是一种行为型模式,它提供一个解析特定语法规则的解释器。 该模式包含一个表达 阅读全文
posted @ 2019-02-13 13:53 夜勿语 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 引言 之前已经写了17篇关于设计模式的文章,而这些设计模式大都是为了降低代码之间的耦合,避免违反开闭原则,但它们大都有同样的一个缺点,产生更多的类和对象,如果数量达到一定程度,就会导致系统性能降低,而今天要讲的这个模式就是为了解决这样的一个问题,它就是享元模式。 正文 定义 享元模式是为了尽可能地划 阅读全文
posted @ 2019-02-12 20:38 夜勿语 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 引言 在平时开发中如果遇到需要由多个不同的类对象来处理同一个请求时,你会怎么做呢? if (condition) { object1.invoke(); } else if (condition1) { object2.invoke(); } else if (condition2) { objec 阅读全文
posted @ 2019-02-11 17:57 夜勿语 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 前言 桥接模式也是经典的23种模式之一,不过在《HeadFirst设计模式》书中只对其做了一个简短的描述,本文则是根据网络上的博客得出的个人理解和总结。 正文 定义 在维基百科上是这样定义桥接模式的: 桥接模式是软件设计模式中最复杂的模式之一,它把事物对象和其具体行为、具体特征分离开来,使它们可以各 阅读全文
posted @ 2019-02-10 19:56 夜勿语 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 前言 “万事万物皆对象!”,这是面向对象的宗旨,在Java中我们无时无刻不在创建对象,那创建对象有哪些方式呢?可以通过new或者反射,还有就是今天要讲的原型模式。那什么是原型模式,为什么又要通过原型模式去创建对象呢? 正文 无论是通过new还是反射,我们都免不了要去手动设置其属性,如果类结构非常复杂 阅读全文
posted @ 2019-02-09 19:33 夜勿语 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 引言 昨天我写了一篇迭代器模式的文章,其中用到餐厅菜单的例子,如果你细想过,肯定是能发现一些问题的,比如昨天的菜单中只有一级菜单(不清楚的同学可以先看看我上一篇文章,但这只是一个引子,并不影响后面的阅读),那当某些餐厅需要往自己的菜单中添加子菜单列表(比如甜品),之前实现的迭代器就无法正确工作了,因 阅读全文
posted @ 2019-02-08 18:04 夜勿语 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 前言 之前我写过一篇策略模式的文章,讲的是如何灵活地改变对象的行为,今天要讲的模式和策略模式非常像,它也是让你设计出如何灵活改变对象行为的一个模式,与策略模式不同的是它是根据自身状态而自行地改变行为,它就是状态模式。 详解 普通实现 首先我们来分析一个实例:现在的游戏基本都有自动打怪做任务的功能,如 阅读全文
posted @ 2019-02-06 21:25 夜勿语 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 概述 平时在我们生活中,我们常常会接触学习各种各样的新事物,而能够快速吸引留住大量客户的都有一个共性,就是简单易学好上手。比如,windows和linux系统,前者比后者更加普及的原因也就是不需要经过专业系统的学习就能轻松使用。同样的,这种思想在编程界有一个专业的术语——外观模式。 定义 首先我们来 阅读全文
posted @ 2019-02-05 18:45 夜勿语 阅读(138) 评论(0) 推荐(0) 编辑