GoF设计模式

  本站GOF设计模式是国内媒体(书籍和网站)中最早(2002年)成体系专题讲解,至今已经累积了大量不同时期很多道友的模式学习讨论专题。对中国程序员设计思想提升发挥一定作用,甚至有道友提出:软件=数据结构 + 算法 + 设计模式

  本站还包涵了大量学习设计模式的资源,包括源码研读和实战心得,非常方便初学者学习。

  (2023年更新)10年前,你只需要知道 GoF模式 ,你就可以称自己是一个优秀的开发人员。 现在不是了! 如果你想构建高质量的软件,你还需要流行后端架构

Spring框架中的GoF设计模式

学习GoF设计模式的重要性

你还在用if else吗?

幽默:当你的代码中有多个嵌套if-else语句时

GoF三作者15年后再谈模式

Rust语言之GoF设计模式

 

创建模式

1、#Factory工厂模式

Rust语言之简单工厂模式:创建对象却无需指定其具体类型。
Rust语言之抽象工厂模式:创建对象却无需指定具体的创建类。
设计模式之Factory(工厂模式)

3、#Prototype原型模式:从现有对象中克隆一个新对象

设计模式之Prototype(原型模式)
Rust语言之GoF设计模式:原型模式

4、#Builder建造者模式:需要创建很多部件然后组装成一个复杂对象

设计模式之Builder
Rust语言之Builder建造者模式

5、#Singleton单例模式:确保全局只有一个实例变量被创建

设计模式之Singleton(单态模式)
Rust语言之GoF设计模式:单例模式

结构模式

6、#facade外观模式:为复杂的对象群加装一个门面,提供外部统一访问操作

设计模式之Facade
Rust语言之GoF设计模式:外观Facade模式

7、#Proxy代理模式:内外之间装一个保安

设计模式之Proxy
Rust语言之GoF设计模式:代理模式

8、#Adapter适配器模式:两个无关的类通过适配一个现有类的接口而一起协调合作

设计模式之Adapter
Rust语言之GoF设计模式:适配器Adapter

9、#Composite组合模式:将对一组对象的访问操作变成对一个单一的对象的操作

设计模式之Composite
Rust语言之GoF设计模式:组合Composite模式

10、#decorator装饰模式:让一个对象的行为在运行时能像刷油漆一样动态扩展

设计模式之Decorator
Rust语言之GoF设计模式:装饰器Decorator模式

11、#Bridge桥模式:解除抽象的束缚,自由释放两个类实现独立变化

设计模式之Bridge
Rust语言之GoF设计模式:桥Bridge模式

12、#Flyweight享元模式:让大量重量对象飞起来,变得轻量

设计模式之Flyweight
Rust语言之GoF设计模式:Flyweight享元模式

行为模式

13、#模板方法模式:将算法或业务逻辑的结构定义为一个抽象类,让子类按照该结构或流程提供具体实现行为

设计模式之Template
Rust语言之GoF设计模式: 模板方法模式

14、#备忘录模式:记录动作、活动或事件流水账,通过时间回溯可恢复历史状态

设计模式之Memento
Rust语言之GoF设计模式:备忘录Memento模式

15、#观察者模式:发布/订阅,先确定订阅关系,然后我有事通知您

设计模式之Observer
Rust语言之GoF设计模式:观察者模式

16、#COR职责链模式:将请求命令委托给一连串的处理器处理

设计模式之Chain of Responsibility
Rust语言之GoF设计模式:责任链模式

17、#Command命令模式:是一个封装了需要执行规定动作和参数的对象,命令/事件=输入/输出

设计模式之Command
Rust语言之GoF设计模式:命令模式

18、#State状态模式:将可变变量用一个对象封装起来,只允许特定动作或命令去改变它

设计模式之State
Rust语言之GoF设计模式:状态模式

19、#strategy策略模式:在运行时可选择一系列算法或业务逻辑规则中的任何一种

设计模式之Strategy
Rust语言之GoF设计模式:策略模式

20、#mediator中介者模式:MVC中的控制器,封装对象之间的相互操作和协调

设计模式之Mediator
Rust语言之GoF设计模式:中介者Mediator模式

21、#解释器interpreter模式:实现一种领域特定语言DSL的解释翻译

设计模式之Interpreter
Rust语言之GoF设计模式: 解释器Interpreter模式

22、#Visitor访问者模式:将算法操作或业务逻辑访问与对象群组成的复杂性结构分离。

设计模式之Visitor
Rust语言之GoF设计模式:Visitor访问者游客模式

23、#设计模式之Iterator:能按顺序访问一个对象群中的各个元素,却不暴露其底层细节

Rust语言之GoF设计模式:迭代器模式

JavaEE设计模式

Ioc模式/依赖注射模式
Ioc模式是一种框架技术性质的模式,它同时也为AOP的Java实现提供了一种途径。

依赖注入与事件编程
因为方法的依赖而将整个类注入,是不是有点粗糙?

依赖注入IOC DI专题讨论

AOP专题讨论

AOP是什么?
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP带来了新的编程革新。AOP是GoF设计模式的延续,解决了GoF设计模式无法解决的一些重要的问题。

AOP详解和AspectJ
文章进一步介绍了AOP定义以及一些专业术语,通过AspectJ实现掀开了AOP神秘的面纱。

AOP与权限控制实现
资源访问权限控制(ACL)是系统安全的主要部分,权限控制的设计和实现问题已经在本站社区有过多次讨论。使用AOP实现ACL可谓是不二之法。

AOP面向方面编程专题讨论

MVC模式已死
MVC模式将被DCI架构替代,控制器被Context替代。

为什么我再也不使用MVC框架了?

MVC专题

DCI(Data Context Interaction)

设计模式在EJB中应用


模式案例实战学习


框架专题

函数式编程

Jive设计模式学习 Jive是学习GoF设计模式最好案例之一。

#refactor重构   

这么多设计模式,我的看法和理解

讨论设计模式和00思想

学习设计模式,哪本书适合入门呢

什么是OO思想? 设计模式归结到两个字:间接

百篇设计模式专题

Rust语言之GoF设计模式

感谢2002年台湾「点空间」将本站设计模式文章翻译成繁体字并转载