GoF四人帮设计模式
本站GOF设计模式是国内媒体(书籍和网站)中最早(2002年)成体系专题讲解,至今已经累积了大量不同时期很多道友的模式学习讨论专题。对中国程序员设计思想提升发挥一定作用,甚至有道友提出:软件=数据结构 + 算法 + 设计模式。
本站还包涵了大量学习设计模式的资源,包括源码研读和实战心得,非常方便初学者学习。
什么是模式?模式是针对特定上下文中出现的问题及其后果的可重复使用的解决方案:
- 上下文Context:该模式适用的情况
- 问题:该模式解决的问题
- 解决方案:模式提出的解决方案
- 优缺点:描述应用该模式的后果
(2023年更新)10年前,你只需要知道 GoF模式 ,你就可以称自己是一个优秀的开发人员。 现在不是了! 如果你想构建高质量的软件,你还需要流行后端架构。
创建模式
设计模式之Factory(工厂模式)
3、#Prototype原型模式:从现有对象中克隆一个新对象
设计模式之Prototype(原型模式)
4、#Builder建造者模式:需要创建很多部件然后组装成一个复杂对象
设计模式之Builder
5、#Singleton单例模式:确保全局只有一个实例变量被创建
设计模式之Singleton(单态模式)
结构模式
6、#facade外观模式:为复杂的对象群加装一个门面,提供外部统一访问操作
设计模式之Facade
用户体验不好的原因是 康威定理:一个个被划分的团队无意中创造出支离破碎的用户体验。
7、#Proxy代理模式:内外之间装一个保安
设计模式之Proxy
8、#Adapter适配器模式:两个无关的类通过适配一个现有类的接口而一起协调合作
设计模式之Adapter
9、#Composite组合模式:将对一组对象的访问操作变成对一个单一的对象的操作
设计模式之Composite
10、#decorator装饰模式:让一个对象的行为在运行时能像刷油漆一样动态扩展
设计模式之Decorator
11、#Bridge桥模式:解除抽象的束缚,自由释放两个类实现独立变化
设计模式之Bridge
12、#Flyweight享元模式:让大量重量对象飞起来,变得轻量
设计模式之Flyweight
行为模式
13、#模板方法模式:将算法或业务逻辑的结构定义为一个抽象类,让子类按照该结构或流程提供具体实现行为
设计模式之Template
14、#备忘录模式:记录动作、活动或事件流水账,通过时间回溯可恢复历史状态
设计模式之Memento
15、#观察者模式:发布/订阅,先确定订阅关系,然后我有事通知您
设计模式之Observer
16、#COR职责链模式:将请求命令委托给一连串的处理器处理
设计模式之Chain of Responsibility
17、#Command命令模式:是一个封装了需要执行规定动作和参数的对象,命令/事件=输入/输出
设计模式之Command
18、#State状态模式:将可变变量用一个对象封装起来,只允许特定动作或命令去改变它
设计模式之State
19、#strategy策略模式:在运行时可选择一系列算法或业务逻辑规则中的任何一种
设计模式之Strategy
20、#mediator中介者模式:MVC中的控制器,封装对象之间的相互操作和协调
设计模式之Mediator
21、#解释器interpreter模式:实现一种领域特定语言DSL的解释翻译
设计模式之Interpreter
22、#Visitor访问者模式:将算法操作或业务逻辑访问与对象群组成的复杂性结构分离。
设计模式之Visitor
23、#设计模式之Iterator:能按顺序访问一个对象群中的各个元素,却不暴露其底层细节
JavaEE设计模式
Ioc模式/依赖注射模式
Ioc模式是一种框架技术性质的模式,它同时也为AOP的Java实现提供了一种途径。AOP是什么?
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP带来了新的编程革新。AOP是GoF设计模式的延续,解决了GoF设计模式无法解决的一些重要的问题。AOP详解和AspectJ
文章进一步介绍了AOP定义以及一些专业术语,通过AspectJ实现掀开了AOP神秘的面纱。AOP与权限控制实现
资源访问权限控制(ACL)是系统安全的主要部分,权限控制的设计和实现问题已经在本站社区有过多次讨论。使用AOP实现ACL可谓是不二之法。MVC模式已死
MVC模式将被DCI架构替代,控制器被Context替代。DCI(Data Context Interaction)
设计模式在EJB中应用
模式案例实战学习
Jive设计模式学习 Jive是学习GoF设计模式最好案例之一。
百篇设计模式专题
Rust语言之GoF设计模式
感谢2002年台湾「点空间」将本站设计模式文章翻译成繁体字并转载