迭代器模式(下):如何设计实现一个支持“快照”功能的iterator?
67 | 迭代器模式(下):如何设计实现一个支持“快照”功能的iterator? 上两节课,我们学习了迭代器模式的原理、实现,并且分析了在遍历集合的同时增删集合元素,产生不可预期结果的原因以及应对策略。 ...
67 | 迭代器模式(下):如何设计实现一个支持“快照”功能的iterator? 上两节课,我们学习了迭代器模式的原理、实现,并且分析了在遍历集合的同时增删集合元素,产生不可预期结果的原因以及应对策略。 ...
66 | 迭代器模式(中):遍历集合的同时,为什么不能增删集合元素? 上一节课中,我们通过给ArrayList、LinkedList容器实现迭代器,学习了迭代器模式的原理、实现和设计意图。迭代器模式主要作用是解耦容器代码和遍历代码,这也印证了我们前面多次讲过的应用设计模式的主要目的是解耦。 ...
68 | 访问者模式(上):手把手带你还原访问者模式诞生的思维过程 前面我们讲到,大部分设计模式的原理和实现都很简单,不过也有例外,比如今天要讲的访问者模式。它可以算是23种经典设计模式中最难理解的几个之一。因为它难理解、难实现,应用它会导致代码的可读性、可维护性变差,所以,访问者模式在实际的软件开发中很少被用到,在没有特别必要的情况下,建议你不要使用访问者模式。 ...
69 | 访问者模式(下):为什么支持双分派的语言不需要访问者模式? 上一节课中,我们学习了访问者模式的原理和实现,并且还原了访问者模式诞生的思维过程。总体上来讲,这个模式的代码实现比较难,所以应用场景并不多。从应用开发的角度来说,它的确不是我们学习的重点。 ...
44 | 工厂模式(上):我为什么说没事不要随便用工厂模式创建对象? 上几节课我们讲了单例模式,今天我们再来讲另外一个比较常用的创建型模式:工厂模式(FactoryDesignPattern)。 ...