GoF设计模式
本站GOF设计模式是国内媒体(书籍和网站)中最早(2002年)成体系专题讲解,至今已经累积了大量不同时期很多道友的模式学习讨论专题。对中国程序员设计思想提升发挥一定作用,甚至有道友提出:软件=数据结构 + 算法 + 设计模式。
本站还包涵了大量学习设计模式的资源,包括源码研读和实战心得,非常方便初学者学习。
(2023年更新)10年前,你只需要知道 GoF模式 ,你就可以称自己是一个优秀的开发人员。 现在不是了! 如果你想构建高质量的软件,你还需要流行后端架构。
创建模式
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实现提供了一种途径。依赖注入与事件编程
因为方法的依赖而将整个类注入,是不是有点粗糙?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设计模式最好案例之一。
什么是OO思想? 设计模式归结到两个字:间接