博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
23个设计模式的简明教程
阅读量:4164 次
发布时间:2019-05-26

本文共 1465 字,大约阅读时间需要 4 分钟。

学习设计模式的方法有很多。全面深入地学习,可以选择经典设计模式书籍。或者通过简短、清晰的教程快速了解设计模式。本文整理了23个设计模式简明教程,其中多篇以讲故事的方式来学习设计模式。

创建型模式

一、Singleton,单例模式

《》

设计模式是前辈们在多年开发工作中经验的总结,可以提高代码的可重用性、可靠性和规范性,让代码更容易理解,而单例模式是其中最重要、最简单、最常用的设计模式之一,让我们一起来揭开它的神秘面纱吧。

《》

单例模式是Java中最常用的设计模式之一,它通过阻禁止外部实例化和修改,对象的方式来控制所创建的对象的数量。这个概念可以被广泛地推广到仅使用有一个现存的对象能更高效运行的系统,或者是限制在若干个对象实例化为特定的数目的高效系统环境系统中。

二、Abstract Factory,抽象工厂

《》

抽象工厂模式是在工厂模式的基础上增加的一层抽象概念。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。故我们也叫它“工厂的工厂”。

三、Factory,工厂模式

《》

工厂模式是根据不同的参数创建对象。例如用工厂创建人。 如果我们想要一个男孩,工厂就会为我们生产一个男孩;如果我们需要一个女孩,工厂则会为我们生产一个女孩。工厂会根据不同的参数,为我们提供不同的物品。

四、Builder,建造者模式

《》

建造者模式的关键特性是它将一个建造过程分解成很多步骤,也可以说,每个产品的建造会遵循同样的流程,不过流程内的每一个步骤都不尽相同。

五、Prototype,原型模式

《》

原型模式被用在频繁调用且极其相似的对象上,它会克隆对象并设置改变后的属性,而且消耗的资源较少。

行为型模式

六、Iterator,迭代器模式

《》

七、Observer,观察者模式

《》

简而言之,观察者模式=发布者+注册者。观察者模式用来对GUI中的动作做侦听。Swing GUI的例子就表明了动作侦听是怎样实现观察者模式的。

八、Template Method,模板方法

《》

模板方法模式是在日常开发中使用最为广泛的设计模式之一。通过本视频,你可以了解什么是模板方法模式,如何用 Java 语言实现模板方法模式。 将用简单生动的例子带你领略模板方法模式的真意,最后还将用实际的行业案例告诉你模板方法模式的强大功能。

九、Command,命令模式

《》

十、State,状态模式

《》

十一、Strategy,策略模式

《》

十二、Chain of Responsibility,职责链模式

《》

十三、Mediator,中介者模式

《》

十四、Visitor,访问者模式

《》

十五、Interpreter,解释器模式

《》

十六、Memento,备忘录模式

《》

结构型模式

十七、Composite,组合模式

《》

十八、Facade,外观模式

《》

十九、Proxy,代理模式

《》

二十、Adapter,适配器模式

《》

所谓适配器,就是连接“源”和“目标”的纽带。本课程由生活中常见的例子入手,讲述适配器模式的组成和应用,为你的 Java 达人锻造添砖加瓦

二十一、Decrator,装饰模式

《》

二十二、Bridge,桥模式

《》

简单来讲,桥接模式是一个两层的抽象。桥接模式是用于“把抽象和实现分开,这样它们就能独立变化”。 桥接模式使用了封装、聚合,可以用继承将不同的功能拆分为不同的类。

二十三、Flyweight,享元模式

转载:

你可能感兴趣的文章
软件系统的架构(ArchitECture)有两个要素是什么?
查看>>
什么是非侵入式设计?
查看>>
可遇见框架技术之面试问题
查看>>
系统设计类面试题
查看>>
架构师的职责都有哪些?
查看>>
看女程序员是怎么坑大师兄的, 网友: 真的惨,笑死我了!
查看>>
C/C++程序员面试基础知识(一)
查看>>
程序员提离职遭领导威胁,一线企业总监我都认识,我让你混不下去
查看>>
朝九晚六吊打互联网企业,程序员:又开始无脑吹国企了!
查看>>
网友话数万元转行程序员,但是却没人要,网友:是学历问题吗?
查看>>
程序员辞掉30W年薪接私活:6个月就能赚回30W,庆幸自己当初辞职
查看>>
马云四天三谈996被骂上热搜:抱歉,这届年轻人不好“骗”了!
查看>>
中国牛逼的程序员有哪些?入职华为两天转正,半个月升主任
查看>>
为什么大学里的计算机老师,不去大公司当程序员呢?
查看>>
eclipse的java facets的runtimes如何删除tomcat?
查看>>
oracle序列的cache_size说明
查看>>
oracle中两个时间戳相减得到间隔毫秒数
查看>>
Oracle中将毫秒数转换为timestamp类型的两种方法
查看>>
mybatis配置and rownum< minus 查询第几行到第几行数据的sql原型和mybatis原型。
查看>>
oracle的concat函数使用问题。
查看>>