23种设计模式,常常多个模式结合使用,主要是为了解决中大型软件项目“类和对象”膨胀的问题,进而有效组织类的结构而提出的。可划分为3类:创建型(关于类的创建),结构型(多个类的组织),行为型(多个对象的组织)。

创建型模式包括5种:工厂模式(一个一个创建类,优化为用一个模子创建类)、抽象工厂模式(一个一个创建类,然后组装优化为一套模子创建类)、单例模式(简单常用,保证只有一个实例在运行)、构建模式(按同一步骤创建类),原型模式(从已有类copy新类)。

 

结构型模式包括7种:适配器模式(一个类+转接头=新的风格同一的类,加马甲)、桥接模式(说不清楚)、外观模式(一系列类加个马甲,再留几个接口,封装隐藏降低耦合)、组合模式(类似树,节点是可以包含其他节点的。这样的多个节点,可以组装成任意规模的“树”)、代理模式(类似用书包占座,次要的部分用代理类代替以提高性能降低耗时,当需要实际类时再通过代理类访问)、轻量模式(类极多或数目不定,无法预先获知。类似HTML标签和样式分离,标签只有有限个,采用对象池;而各式各样的样式则根据实际情况加载。轻量模式2个特点,对象池和“底子面子分离”)、装饰模式(在不改变类的情况下,给类新添不同的功能,如给图片类增加黑色边框锯齿形边框等,并且多个装饰可以叠加)。

 

行为型模式包括11种:责任链模式(按对象的链条逐个传递,典型应用Windows消息循环机制)、状态模式(将复杂的switch case语句分拆成一个个对象,对象根据状态的改变自动实现对应的功能)、策略模式(算法集,封装为多个可互相替换的算法,根据实际情况选择合适的算法)、命令模式(将不同操作归纳封装为抽象的命令,便于统一接口)、会议记录模式(主要是为了实现“撤销”功能,将操作记录下来,并且可以回滚到上一步操作)、模板模式(将共同的部分抽象成为模板)、迭代器模式(将集合对象的访问抽象为迭代器)、解释器模式(如正则表达式的匹配,将某一功能交给专门的类来解释,和代理比较相似)、观察者模式(抽象一“观察者”,将对象的变化通知所有相关的对象)、中介者模式(将多对多的对象联系概括为“中介者”,专门用于对象通讯)、访问者模式(不改变已有类结构基础上,以最小代价实现新增或变更功能,常常破坏封装性)

GoF 设计模式:浅浅印象的更多相关文章

  1. GOF设计模式特烦恼

    这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了.为了和"学习"之间的友谊小船不翻,决定对以往学习过的GOF设计模式做一个简 ...

  2. 在GoF设计模式

    在GoF设计模式中,结构型模式有: 1.适配器模式 Adapter   适配器模式是将一个类的接口转换成客户希望的另外一个接口.适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.   ...

  3. OOAD-设计模式(二)之GRASP模式与GOF设计模式概述

    一.GRASP模式(通用责任分配软件模式)概述 1.1.理解责任 1)什么是责任 责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为.数据.对象的创建等 知道责任——表示知道什么 行为责任 ...

  4. 8.5 GOF设计模式四: 观察者模式Observer

    GOF设计模式四: 观察者模式Observer  现实中遇到的问题  当有许多不同的客户都对同一数据源感兴趣,对相同的数据有不同的处理方式,该如 何解决?5.1 定义: 观察者模式  观察者模式 ...

  5. 8.4 GOF设计模式三: 外观模式 Facade

    GOF设计模式三: 外观模式 Facade  “现有系统”功能强大.复杂,开发“新系统”需要用到其中一部分,但又要增加一部 分新功能,该怎么办?4.1 Facade Pattern: Key Fea ...

  6. 8.3 GOF设计模式二: 适配器模式 Adapter

    GOF设计模式二: 适配器模式 Adapter  为中国市场生产的电器,到了美国,需要有一个转接器才能使用墙上的插座,这个转接 器的功能.原理?复习单实例模式  SingleTon的三个关键点  ...

  7. 8.2 GOF设计模式一: 单实例模式 SingleTon

    GOF设计模式一: 单实例模式 SingleTon  整个美国,只有一个“现任美国总统”  比如,在学校,“老师”,有数百个:“校长”,只有一个  系统运行时,如何保证某个类只允许实例化一个对象 ...

  8. GOF设计模式快速学习

    这段时间,学习状态比较一般,空闲时基本都在打游戏,和研究如何打好游戏,终于通过戏命师烬制霸LOL,玩笑了.为了和"学习"之间的友谊小船不翻,决定对以往学习过的GOF设计模式做一个简 ...

  9. GoF设计模式三作者15年后再谈模式

    Erich Gamma, Richard Helm, 和 Ralph Johnson在GoF设计模式发表15年以后,再谈模式,另外一位作者,也是四色原型的发明者Peter已经过世. 提问者:如今有85 ...

随机推荐

  1. OC之消息基本概念

    要说清楚消息这个话题,我们必须先来了解三个概念 Class, SEL, IMP,它们在 objc/objc.h 中定义: typedef struct objc_class *Class; typed ...

  2. js中的随机数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. ural 1013. K-based Numbers. Version 3(动态规划)

    1013. K-based Numbers. Version 3 Let’s consider K-based numbers, containing exactly N digits. We def ...

  4. Ajax.BeginForm 异步上传附件 替代方案

      一:问题描述 含有文件信息表单内容,想通过异步上传到服务器,但是使用Ajax.BeginForm上传时,后台无法获取文件信息 二:解决方案 通过  $.ajaxFileUpload 可以实现文件及 ...

  5. 浅析js模板引擎

    js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTe ...

  6. Webdriver的设计模式:Page Object(页面模型)

    设计思想:面向对象,将单个页面所有可能用到元素封装到一个page类中,并提供一些常用的方法,其属性就代表页面元素,普通方法代表对元素所做的操作 以博客园的登录页面为例: import org.open ...

  7. Struts2--课程笔记1

    第一个Struts程序: 在开发Struts程序之前,首先要导入额外的jar包,基本需求的是14个jar包,关于14个ja包是什么,有什么作用,此处不讲述. 还要配置web.xml文件,注册Strut ...

  8. 复习TextView(查漏补缺)

    android:drawableLeft="@drawable/ic_launcher"----设置图片居左 android:paddingLeft="20dp" ...

  9. 转 s3c2440硬件学习----内存管理单元MMU

    本篇基本是韦东山书上的 一.内存管理单元MMU介绍 内存管理单元简称MMU,它负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查.MMU使得每个用户进程拥有自己独立的地址空间,并通过内存访 ...

  10. CDN技术详解及实现原理

    CDN技术详解 一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精 ...