
设计模式
文章平均质量分 93
萧萧九宸
西方发达国家的技术优势可以使母语为英语的人员获得技术领域的先天性竞争优势,希望国人可以注重中文技术文档的分享与完善,有朝一日获不再让英文成为技术领域必过的一道坎。
展开
-
策略模式(Strategy Pattern): 开闭原则的践行者
策略模式初看上去, 像是在教学小白如何使用继承或是接口, 然而实际上, 它是在教学如何使用对象组合。 了解完对象组合和类继承的关系以后, 再看策略模式, 会觉得豁然开朗。原创 2017-06-16 14:17:57 · 1251 阅读 · 0 评论 -
单例模式( Single Pattern ): 不仅仅是回字的四种写法
单例模式作为入门编程人员面试必考题之一,也是被玩坏了, 猛然一搜尽然有七种写法,什么懒汉,饿汉五花八门, 这里参考已经比较不错的文章, 忽略五花八门的命名, 把单例模式不同写法按逻辑演进梳理一下, 方便记忆。 参考文章: 1. 单例模式的八种写法比较 2. Wiki: Initialization-on-demand holder idiom 3. Java Singleton Des...原创 2017-02-20 17:49:51 · 1144 阅读 · 0 评论 -
观察者模式( Observer Pattern ): MVC的进一步泛化
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》在商业项目中第一次读到观察者模式的代码是一个异步服务器消息分发的实现部分。由此开始学习了一下 。 如果说单例模式和工厂方法模式是入门级程序员都必须掌握的方法, 那么观察者模式则是所有实际项目开发者都会直接或者间接用到的模式, 原因是:观察者模式是MVC模式原创 2017-02-20 14:43:42 · 7667 阅读 · 0 评论 -
装饰器模式( Decorator Pattern): Oracle 数据库打印PreparedStatement
本文参考: 1. Overpower PreparedStatement 2. Bind variables - The key to application performance此文作为本人23种设计模式学习笔记系列之一, 个人制定的对设计模式的学习方法是在实际项目中用一种模式, 写一篇笔记, 希望能够早日写完23中设计模式的笔记, 完成对所有设计模式的初步掌握 本文中的代码所使原创 2017-02-17 14:51:14 · 1351 阅读 · 0 评论 -
组合模式(Composite Pattern): 复杂的树形结构
组合模式”和“组合优于继承”这一俗语之间, 并没有直接的概念联系。原创 2017-03-20 23:46:15 · 2177 阅读 · 0 评论 -
中介者模式(Mediator Pattern): 避免对象间错综复杂的相互引用
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。很多有经验的程序员会得出“使用了设计模式,反而降低了代码的可读性,增原创 2017-06-23 14:10:29 · 940 阅读 · 0 评论 -
责任链模式 ( Chain of Responsibility)
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在原创 2017-05-07 09:42:15 · 715 阅读 · 0 评论 -
享元模式 ( Flyweight Pattern ): 使用条件最苛刻的设计模式
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框原创 2017-05-06 19:01:43 · 694 阅读 · 0 评论 -
模板方法模式( Template Method Pattern ): 工厂方法模式的情侣
模板方法模式和工厂方法模式分别隶属于行为模式(Behavioral Pattern)和创建类模式(创建型模式), 但是他们的核心思想却十分相似, 而且通常会同时出现。设计动机 将一个操作整体步骤定义好,把其中的一部分具体步骤延迟到子类去实现。原创 2017-03-02 15:56:19 · 2957 阅读 · 2 评论 -
设计模式用前须知
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知1: 为什么有人说设计模式故弄玄虚大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。 很多有经验的程序员会得出“使用了原创 2017-06-08 14:43:18 · 598 阅读 · 0 评论 -
外观模式( Facade Pattern ): 最简单的设计模式
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在原创 2017-03-28 21:09:25 · 491 阅读 · 0 评论 -
工厂方法模式(Factory Method Pattern): 简单工厂并不是一种设计模式
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》Motivation for Simple Factory and Factory Method Pattern工厂模式作为提及频率最为频繁的两个模式之一(另一个是单例模式), 却有着很多初学者都没有搞清楚的误区 。原创 2017-03-01 18:07:39 · 494 阅读 · 0 评论 -
桥接模式( Bridge Pattern ): 可以变化的抽象类与接口
桥接模式是一种提及频率很高, 应用频率较少的设计模式。 桥接模式之所以被频繁提及, 是因为它的设计意图提到了“解耦”, 然而它的解耦方式却常常被很多人误解。原创 2017-03-19 17:05:34 · 1021 阅读 · 0 评论 -
备忘录模式(Memento Pattern): 一个需要注意方法权限的模式
了解过备忘录模式的 Java 同学可以先看一下如下备忘录模式的 Mementor 实现举例, 是否能发现其中的明显错误。 如果不能, 则更有必要阅读本文原创 2017-05-10 22:24:06 · 646 阅读 · 0 评论 -
原型模式(Prototype Pattern)
很多讲解原型模式的博文,甚至视屏教程中都把原型模式最主要的目的列为效率的提升, 美其名曰复制一个对象比创建一个对象开销更小,并由此引伸到“深拷贝”“浅拷贝”的知识点。 很显然, 这种说法差强人意, 并非原型模式的设计由来。原创 2017-03-11 15:57:46 · 456 阅读 · 0 评论 -
迭代器模式 ( Iterator Pattern )
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》Java for 、for each 循环深入理解(转载)Java for-each循环解惑java中为什么要使用Iterator设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。原创 2017-05-10 14:44:24 · 585 阅读 · 0 评论 -
装饰器模式( Decorator Pattern ): 代理模式的双胞胎兄弟
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在原创 2017-03-28 08:47:56 · 809 阅读 · 0 评论 -
访问者模式(Vistor Pattern)
访问者模式的有两个关键点: - 需要访问的数据结构中包含的元素并不是同一类型的, 而是多个不同类型, 相同目的的访问需要根据元素类型进行不同的操作。 - 被访问的数据结构中所包含的元素类别几乎不怎么改变, 因为使用访问模式以后, 添加一个新的元素类会需要对所有的 Vistor 子类进行修改, 定义新的访问方法。原创 2017-06-22 16:30:42 · 460 阅读 · 0 评论 -
状态模式(State Pattern):拒绝大量的 If 与 Switch
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知大部分程序员编写的程序可以分为三类(应用程序、工具包 、框架),使用设计模式的目的是提高代码的可复用性和可扩展性(灵活性), 但是设计模式在这三类软件中所发挥的效果是不一样的。很多有经验的程序员会得出“使用了设计模式,反而降低了代码的可读性,增原创 2017-06-22 13:34:03 · 1075 阅读 · 0 评论 -
适配器模式(Adapter Pattern)
把一个类的接口转换成另一个用户所期待的接口。 适配器使得原本接口并不相互适配的多个类一起工作起来原创 2017-03-17 16:08:42 · 462 阅读 · 0 评论 -
解释器模式( Interpreter Pattern ): 最不容易实现的设计模式
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在原创 2017-05-09 15:53:45 · 512 阅读 · 0 评论 -
命令模式( Command Pattern )
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》设计模式用前须知 设计模式种一句出现频率非常高的话是,“ 在不改动。。。。的情况下, 实现。。。。的扩展“ 。 对于设计模式的学习者来说,充分思考这句话其实非常重要, 因为这句往往只对框架/ 工具包的设计才有真正的意义。因为框架和工具包存在原创 2017-05-08 13:50:56 · 877 阅读 · 0 评论 -
创建者模式( Builder Pattern )
参考书籍: 《Design Patterns: Elements of Reusable Object-Oriented Software》Builder创建者模式GOF 书籍中最难以理解的一种模式, 甚至书籍自身都发生了设计意图的表达和代码样例不一致的情况。 创建者模式(Builder)设计意图将一个复杂对象的构建与展现分离, 使得同样的构建过程可以创造出不同的展现形式。原创 2017-03-03 18:05:33 · 673 阅读 · 0 评论