设计模式
参考:
如有错误之处,敬请指教。
什么是设计模式?
设计模式是前辈计算机科学家们在应用程序开发中积累的解决某些特定问题的经验和套路。它不是某种特定的语法, 而是一套用来提高代码可复用性,可维护性,可读性,稳健性以及安全性的解决方案。 设计模式是软件开发的基石,如同大厦的一块砖石一样,巧妙合理的使用设计模式可以解决软件开发中的许多问题, 每种设计模式都描述了发生在我们周围不断发生的问题,以及该问题的核心方案,这也是设计模式被广泛使用的原因之一。 设计模式不限制于某一种语言,它适用于c++,c#,go,java等面向对象的语言。
PS:本篇文章中所有的代码将采用Java实现。
什么是GOF?
在1994年,Erich Gamma,Richard Helm , Ralph Johnson和John Vlissides四人合著了一本书, 书名叫作(Design Patterns: Elements of Reusable Object-Oriented Software)《设计模式:可复用面向对象软件的基础》。 书中提出和总结了对于一些常见软件设计问题的标准解决方案,称为软件设计模式, 由于四位作者的被合称为 GOF, 所以书中的设计模式也被称为 "四人帮设计模式(Gang of Four design patterns)"。
设计模式的分类
GOF中总共有23种设计模式,这些设计模式并不是孤立存在的,有些设计模式是相互关联的,所以一个应用程序在很大程度上 可能会使用多种设计模式。
设计模式可分为3大类:
创建型模式(Creation Pattern): 创建型设计模式描述的是 "怎样创建对象",它的主要特点是将 对象的创建和使用分离, 这使得程序在创建对象与使用对象时更加灵活。 创建型模式有:
工厂方法模式
抽象工厂模式
单例模式
建造者模式
原型模式
结构型模式(Structural Pattern): 结构型设计模式描述的是 "如何将类和对象按照某种布局,组成更大的结构",这种类型的设计模式 关注的是类和对象的组合。 结构型模式有:
代理模式
适配器模式
装饰器模式
桥接模式
组合模式
外观模式
享元模式
行为型设计模式(Behavioral Pattern): 行为型设计模式描述的是 "类或对象之间怎样相互协作以及怎样分配各自的职责,完成单个类或对象无法完成的任务"。 行为型设计模式有:
观察者模式
模板方法模式
策略模式
责任链模式
中介者模式
访问者模式
命令模式
解释器模式
迭代器模式
备忘录模式
状态模式