文档章节

设计模式笔录(二),设计模式有哪些

方旭
 方旭
发布于 2011/03/31 23:13
字数 672
阅读 775
收藏 14

本人出道5年,学习、编程、再学习、再编程一路走过,只是在笔和纸留下些脚印,实感惭愧。现开始把自己学习到的心得,实践中的体会,一一贴在互联网上,大家互相学习、探讨,寻找一些技术朋友。有些题材,首先想到了最近感兴趣的设计模式,于是着手眼前,踏出坚实一步。

 

设计模式都有哪些?

按照GOF提出,24种,按照目的分为:创建型(creational)、结构性(structural)、行为型(behavioral)。

一、创建型:

    1、Singleton 单例模式。一个类的唯一实例。

    2、Factory Method 工厂模式。被实例化的子类。

    3、Abstract Factory 抽象工厂模式。产生对象家族。

    4、Builder 生成器模式。如何创建一个组合对象。

    5、Prototype 原型模式。被实例化的类。

二、结构型:

    1、Adapter 适配器模式。对象的接口

    2、Bridge 桥模式。对象的实现。

    3、Composite 组成模式。一个对象的结构和组成。

    4、Decorator 装饰模式。对象的职责,不生产子类。

    5、Facade 外观模式。一个子系统的接口。

    6、Flyweight 享元模式。对象的存储开销。

    7、Proxy 代理模式。如何访问一个对象;该对象的位置。

三、行为型:

    1、Chain Of Responsibility 职责链模式。满足一个请求的对象。

    2、Command 命令模式。何时、怎样满足一个请求。

    3、Interpreter 解释器模式。一个语言的文法及解释。

    4、Iterator 迭代器模式。如何遍历、访问一个聚合的各元素。

    5、Mediator 中介者模式。对象间怎样交互、和谁交互。

    6、Memento 备忘录模式。一个对象中哪些似有信息存放在该对象之外,以及在什么时候存储。

    7、Observer 观察者模式。多个对象依赖于另一个对象,而这些对象又如何保持一致

    8、State 状态模式。对象的状态

    9、Strategy 策略模式。算法

    10、Template Method 模板模式。算法中的某些步骤。

    11、Visitor 访问者模式。某些可作用于一个(组)对象上的操作,但不修改这些对象的类。

 

以上的模式名称来自于GOF,四位牛人,他们在“设计模式”一书中提出,设计模式的概念提出,很大一部分是方便人们的沟通,理解。接下来的博客中,我会将我对设计模式的理解一一记录下来,当然非常的浅显,描述也不是很详尽,但会尽量贴近“互联网IT”人士的工作内容,呵呵。

© 著作权归作者所有

方旭
粉丝 50
博文 25
码字总数 15531
作品 0
海口
高级程序员
私信 提问
【设计模式笔记】(十六)- 代理模式

一、简述 代理模式(Proxy Pattern),为其他对象提供一个代理,并由代理对象控制原有对象的引用;也称为委托模式。 其实代理模式无论是在日常开发还是设计模式中,基本随处可见,中介者模式中...

MrTrying
2018/06/24
0
0
JavaScript设计模式入坑

JavaScript设计模式入坑 介绍 设计模式编写易于维护的代码。 设计模式的开创者是一位土木工程师。Σ( ° △ °|||)︴,写代码就是盖房子。 模式 模式一种可以复用的解决方案。解决软件设计中...

小小小8021
2018/10/18
0
0
炒冷饭系列:设计模式 抽象工厂模式

炒冷饭系列:设计模式 抽象工厂模式 摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 亲爱我,孝何难;亲恶我,孝方贤。 一、什么是抽象工厂模...

泥沙砖瓦浆木匠
2014/07/24
166
0
PHP设计模式(一):简介及创建型模式

我们分三篇文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设...

juhenj
2014/05/15
291
2
《PHP设计模式大全》系列分享专栏

《PHP设计模式大全》已整理成PDF文档,点击可直接下载至本地查阅 https://www.webfalse.com/read/201739.html 文章 php设计模式介绍之编程惯用法第1/3页 php设计模式介绍之值对象模式第1/5页...

kaixin_code
2018/11/06
200
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 匹诺曹也是韩国人

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @watergood :分享海先生的单曲《烟花巷》 《烟花巷》- 海先生 手机党少年们想听歌,请使劲儿戳(这里) @Cyber-Pan :已经很久没有十点前下过...

小小编辑
今天
7
1
Snack3 之 Jsonpath使用

Snack3 之 Jsonpath使用 一、 Snack3 和 JSONPath 介绍 Snack3 是一个支持JSONPath的JSON框架。JSONPath是一个很强大的功能,也可以在Java框架中当作对象查询语言(OQL)来使用。 <dependenc...

刘之西东
今天
4
0
7. 彤哥说netty系列之Java NIO核心组件之Selector

<p align="right">——日拱一卒,不期而至!</p> 你好,我是彤哥,本篇是netty系列的第七篇。 简介 上一章我们一起学习了Java NIO的核心组件Buffer,它通常跟Channel一起使用,但是它们在网络...

彤哥读源码
昨天
21
0
在Jupyter notebooks 中运行GRASS GIS

在Ubuntu16.04中,首先安装jupyter: python3 -m pip install --upgrade pippython3 -m pip install jupyter 然后创建一个sh脚本: # directory where GRASS GIS lives# GRASS GIS 的安装......

ddd口木呆
昨天
4
0
c++ get() getline()读取行

天王盖地虎626
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部