GoF23设计模式总述

设计模式GOF23简介 公元1991年,软件界有四位大侠,总结了前人的一些设计模式,并进行分门别,一共得出23设计模式供软件开发者进行参考复用,在经过几代人的开发实践后,设计模式在各个项目中大放光彩,这四位大侠是Gamma, Helm, Johnson & Vlissides,Addison-Wesley, 全地球程序员为了表示对设计模式的敬仰与崇拜,因此设计模式又称为GOF23设计模式主要有三大23,就像少林七十二绝技,各种招式技法都有,但是在项目中却不那么好用,需要有敏... 阅读详情

开篇杂谈

本篇为笔者学习设计模式时的一些笔记总结的开篇引导,开篇的目的一是方便自己在之后可以回头看看加深一下记忆(笔者觉得自己的记忆功能可能有点儿问题T_T),二呢也是有可能的话希望能帮助到一些人吧(当然笔者更多的是因为第一点,因为篇幅深度很浅,其本质只是一个初学者的笔记T_T)。
说起设计模式,在笔者刚接触编程这个领域的时候,就已经久闻其名了,在我的心中它一直是一个非常高深的名词,也许只是一个简单的demo程序,但一牵扯到它们就会给我一种非常高大尚的感觉,总得花些时间仔细品味一下,这也导致了我在之后的学习过程中,总是会下意识地去避开它们,以自己用不到或者等以后要用的时候再学为理由一直规避着它们。曾经有朋友跟我说过,设计模式这种东西并不是说不会你就不能编程不能去实现一个功能,但你掌握了设计模式的思想,一定能让你写出更好的程序,仔细想想,确实很有道理,于是便准备静下心来细细品味一番,于是便有了这个篇幅的诞生了。
总之不要因为觉得设计模式是个过于抽象的东西而规避它,学技术嘛,本来就是要不断学习心得知识,下面笔者就不再多说题外话了,正式开始记录学习设计模式的历程。

GoF

关于本次设计模式主题的笔记,依然跟以前一样,采用java语言进行描述,毕竟笔者最早接触的就是该门语言了,学习的内容呢,也是以广为流传的GoF23种设计模式为学习主体,毕竟是经典。
上面提到了GoF,这是Gang of Four的缩写,翻译过来的话可以看做“四人帮”,当然跟文革时期的那个四人帮没有任何关系哈,只是对四个人的统称。在 1994 年, Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四人合著出版了一本名为《Design Patterns - Elements of Reusable Object-Oriented Software》(中文译名:设计模式 - 可复用的面向对象软件元素) 的书,这本书第一次提到了软件开发中设计模式的概念,并受到了大家的认可,书中目录列举并描述了23种设计模式,本次设计模式的笔记也是围绕这23种设计模式来进行的,当然随着技术的发展,设计模式的类型已经得到了扩展,不局限于这23种设计模式。
对于Java开发人员来说,设计模式有点儿像是JavaSE到J2EE的一座隐性的“沟通桥梁”,如今使用Java的人群基数非常庞大,但一直徘徊在语言层面的开发人员也不在少数。也许更多的时候,只是为了实现某个功能而直接添加一段专门实现该功能的代码,而不是以面向对象的设计思想去构思设计后再进行编码。
GoF有两大基础原则:

  1. 对接口编程而不是对实现编程。
  2. 优先使用对象的组合而不是使用对象的继承。
    GoF本身并不是一种具体的实现技术,它是一种编程的思想,所以其不仅仅局限于某种语言。针对Java语言,接口和抽象类的应用本身就是Java面向对象编程的一种核心所在,GoF则能充分地帮助我们去运用这些核心技术。GoF的最终目的其实也是为了尽可能地去复用我们已有的代码,但编程一道,功能需求总是千变万化,所以设计模式本身也在不断的变化已适应更为广泛的应用场景。
    J2EE中的各种应用框架其本质也是希望能提高代码的复用性,从出发点来看GoF和应用框架的是一致的,当然它们还是略有区别的,GoF的体系结构更小,概念更为抽象,应用范围钢架广泛。
    综上所述,GoF是JavaSE到J2EE的一座桥梁,各类的应用框架中也有着GoF的代码体现。

GoF23种设计模式

前面提到过GoF的23种设计模式,从功能性角度上来进行划分的话可以把他们划为三大类,分别外创建型模式、结构型模式和行为型模式,下图为23中设计模式具体的分类。
在这里插入图片描述
在接下来的篇幅中将对上述的23种设计模式进行分别的描述。

GOF23学习笔记(一)单例模式 单例模式核心作用:保证一个只有一个实例,并且提供一个访问该实例的全局访问点。单例模式的优点:由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要许多资源时,如读取配置,产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决。常见的五种单例模式实现方式饿汉式(线程安全,调用效率高,但不能延时加载)public class Singleton1 ... 阅读详情

相关推荐

GOF23设计模式总结

GOF23设计模式总结 一、GOF23设计模式一览表 二、构建型模式 单例模式 保证一个只有一个实例,并且提供一个访问该实例的全局访问点。 工厂模式 简单工厂模式 :用来生产同一等级结构中的任意产品。(对于增加新的产品,需要修改已有代码) 工厂方法模式 :用来生产同一等级结构中的固定产品。(支持增加任意产品) 抽象工厂模式 :用来生产不同产品族的全部产品。(对于增加新的产品,无能为...

职业炮灰的博客 952

设计模式简介及GoF 23种模式的分(两种分方式)

一、设计模式(Design Patterns)简介: 设计模式代表了最佳实践,通常被有经验的面向对象的开发人员使用。 设计模式是程序猿在软件开发过程中面临的一般问题的解决方案。 设计模式是一套反复使用的、多数人知晓的、经过分编目的、代码设计经验的总结。 (注:分编目的意思是设计模式有很多分,每一种设计模式有其不同作用和使用场景,本人大胆猜测…) 二、设计模式对编程的影响: ...

一只猿的自我修养 2975

GOF23理解

GOF23中需要满足的六大原则 1、开闭原则 OCP(Open Close Principle) 开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象,后面的具体设计中我们会提到这点。 2、里氏代换原则 LSP(Liskov Subst...

xjion的博客 454

gof23设计模式之总结

  总体来说设计模式分为三大: 创建型模式:共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式:共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式:共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。    以作用划分:创...

抬头看不到路就低头看书 273

GOF23设计模式(Design Pattern)总结

GOF23设计模式(Design Pattern)总结   设计模式 常用程度 适用层次 引入时机 结构复杂度 Abstract Factory 比较常用 应用级 设计时 比较复杂 Builder 一般 代码级 编码时 一般

frost131314的专栏 1318

GoF23设计模式

设计模式有两种分方法:根据模式的目的来分和根据模式的作用范围 1. 根据目的来分 根据模式用来完成什么工作的来划分,这种方式可分为创建型模式、结构型模式、行为模式。 创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 结构型模式:用于描述如何将或对象按某种布局组成更大的结构,GoF 中提供了代理、适配器、桥接、装饰、外观、享元、组合等 7 种结构型模式。 行为型模式:用于描述或对象之间怎样相互协

guyuweilove的博客 4016

GoF23设计模式的分和功能

GoF设计模式的经典名著Design Patterns: Elements of Reusable Object-Oriented Software(中译本名为《设计模式——可复用面向对象软件的基础》)的四位作者,他们分为是:Elich Gamma、Richard Helm、Ralph Johnson、以及John Vlissides。这四个人常被称为Gang of Four, 即四人组,简称GoF

青衫磊落长歌行的博客 6185

GOF 23设计模式

GOF23设计模式(Design Pattern)总结 比较   设计模式 常用程度 适用层次 引入时机 结构复杂度 Abstract Factory 比较常用 应用级

理论之树 5396

GOF23设计模式

设计模式

C/C++ 1335

设计模式 GOF23 模式比较

设计模式中很多模式及其相像,本文记录一些常见的,易混淆的设计模式,对他们的目的、作用进行比较,以便更好的理解设计模式

IT老吴的博客 387

GoF 23设计模式

作用: 提供一个创建一系列相关对象的接口适用场景: 系统中需要多个系列产品(CPU + Memory + 主板)协同工作本质操作定义多个产品接口定义抽象工厂接口,包含创建多个产品的方法创建多个具体工厂实现这些接口。

2301_77460724的博客 987

设计模式 GOF23 提纲

设计模式是程序开发过程中提取的一些设计经验,并进行总结、归,得到的常用的模式。 几乎所有的设计模式,都是为了减少耦合、增加内聚。 使得代码易于理解、管理、重构。 按作用分:创建型、结构型、行为型。

IT老吴的博客 348

关于GOF23设计模式的总结

设计模式在于理解,不只在于形式。 不要为了套用设计模式而使用设计模式,而是,在业务上到遇到问题时,很自然地想到设计模式作为一种解决方案。 GOF 23设计模式简介 设计模式其实一门艺术。设计模式来源于生活,不要为了套用设计模式使用设计模 式。设计模式是在我们迷茫时提供的一种解决问题的方案,或者说用好设计模式可以防 范于未然。自古以来 ,在我们人生迷茫时,我们往往都会寻求帮助,或上...

lp18871701190的博客 276

23设计模式——GoF23

模板方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,策略模式,职责链模式,访问者模式。适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式。单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式。是软件开发的一种思维,一种态度,一种进步。

qq_41113298的博客 354

GoF23设计模式的分和功能——小马同学@Tian

GoF23设计模式的分和功能 设计模式有两种分方法,即根据模式的目的来分和根据模式的作用的范围来分。 1. 根据目的来分 根据模式是用来完成什么工作来划分,这种方式可分为创建型模式、结构型模式和行为型模式 3 种。 1. 创建型模式:用于描述“怎样创建对象”,它的主要特点是“将对象的创建与使用分离”。GoF 中提供了单例、原型、工厂方法、抽象工厂、建造者等 5 种创建型模式。 2. 结构型模式:用于描述如何将或对象按某种布局组成更大的结构,GoF 中提供了代理、适配器、桥接、装饰、外

SigleDog的博客 207

GoF 2323设计模式与OOP七大原则概述

1. **开闭原则:** 对扩展开放,对修改关闭。也就是在扩展功能时,不能修改原有的代码,而是在原有的代码基础上进行功能扩展。 2. **里氏替换原则:** 继承必须确保超所拥有的性质在子中任然成立。尽量添加新的方法来实现新的功能,不要重写父的方法来实现功能,否则程序的可复用性就会变差,在多态的场景下程序也会出现错误。 3. **依赖倒置原则:** 要面向接口编程,不要面向现实编程。高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象,这样就降低了程序的耦合度。 4

酷奇的博客 849

23设计模式GOF

23设计模式GOF

gb4215287的博客 2020

设计模式 GOF23 创建型

创建型设计模式分为: 简单工厂模式 工厂模式 抽象工厂模式 建造者模式 原型模式 单例模式

IT老吴的博客 344
上一篇: C#入门经典第七版读书笔记1(C#简介)
下一篇: 单例设计模式
moonfish0607
博客等级 码龄11年 26粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

moonfish0607

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值