Gang Of Four的23中设计模式

标签(空格分隔): 设计模式


1. 根据目的来进行划分

根据目的进行划分可以分为创建型模式, 结构型模式和行为模式三种.

1.1 创建型模式

怎样创建对象, 主要特点是 将对象的创建和使用分离, GoF中提供了单例, 原型, 工厂方法, 抽象工厂, 建造者等5中创建型模式.

1.2 结构性模式

用于描述如何将类或者对象按照某种布局组成更大的结构, GoF提供了代理, 适配器, 桥接, 外观, 享元, 组合等6中结构性模式.

1.3 行为模式

用于描述类或对象之间如何通过写作共同完成单个对象无法完成的任务, 以及怎样分配职责. GoF中提供了模板方法, 策略, 命令, 职责链, 状态, 观察者, 中介者, 迭代者, 访问者, 备忘录, 解释器.


GoF的23中设计模式的功能(只列出常见的).

  1. 单例(Singleton)模式: 某个类只能生成一个实例, 该类提供了一个全局访问点供外部获取该实例拓展是有限多例模式.
    单例模式代码

  2. 原型(Prototype)模式: 将一个对象作为原型, 通过对其进行复制而克隆出多个和原型类似的新实例.
    原型模式代码

  3. 工厂(Factory)方法: 定义一个用于创建产品的接口, 由子类决定生产什么产品.
    工厂设计模式

  4. 抽象工厂(AbstractFactory)模式: 提供一个创建产品族的接口, 其每个子类可以生产一系列相关的产品.

  5. 代理(Proxy)模式: 为某对象提供一种代理以控制对该对象的访问, 即客户端通过代理间接的访问该对象, 从而限制, 增强或者修改该对象的一些特性.
    代理模式

  6. 适配器(Adapter)模式: 将一个类的接口转换成客户希望的另一个接口, 使得原本由于接口不兼容而不能一起工作的哪些类一起工作.
    适配器模式

  7. 桥接(Bridge)模式: 将抽象和实现分离, 它他们可以独立变化, 他们使用组合关系替代竭诚关系来实现, 从而降低了抽象和实现这两个可变维度的耦合度.

  8. 装饰(Decorator)模式: 动态的给对象增加一些功能.

  9. 享元(Flyweight)模式: 运行共享技术来有效的支持大量细粒度对象的复用.
    享元模式

  10. 策略(Strategy)模式: 定义了一些列的算法, 并且将每个算法封装起来, 使他们可以相互替换, 且算法的改变不会影响使用算法的客户.
    策略模式

  11. 模板方法(TemplateMethod)模式:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。
    模板方法

Gang Of Four的23中设计模式的更多相关文章

  1. java中的23中设计模式(转)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  2. Java中的GOF23(23中设计模式)--------- 单例模式(Singleton)

    Java中的GOF23(23中设计模式)--------- 单例模式(Singleton) 在Java这这门语言里面,它的优点在于它本身的可移植性上面,而要做到可移植的话,本身就需要一个中介作为翻译工 ...

  3. java开发中的23中设计模式详解--大话设计模式

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  4. java中的23中设计模式(转载的,有时间一定要熟读)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  5. Java中的GOF23(23中设计模式)--------- 工厂模式(Factory)

    Java中的GOF23(23中设计模式)--------- 工厂模式(Factory) 在给大家介绍工厂模式之前,我想和大家聊聊面向对象的那点事,在这里,引入三个概念. 开闭原则(Open Close ...

  6. java开发中的23中设计模式

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  7. java开发的23中设计模式

    本文转自  Java开发中的23种设计模式详解(转)   设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓 ...

  8. 连表查询都用Left Join吧 以Windows服务方式运行.NET Core程序 HTTP和HTTPS的区别 ASP.NET SignalR介绍 asp.net—WebApi跨域 asp.net—自定义轻量级ORM C#之23中设计模式

    连表查询都用Left Join吧   最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在 ...

  9. java的23中设计模式

    一.设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接 ...

随机推荐

  1. 实验一 Linux系统与应用准备

    实验一 Linux系统与应用准备 项目 内容 作业归属 班级课程 作业要求 课程作业要求 学号-姓名 17041419-刘金林 作业学习目标 1.学习博客园软件开发者学习社区使用技巧和经验:2.学习M ...

  2. 软件基础1Word文档编辑

    word文档编辑 启动Word2010 创建文档,<你好word>. 编辑文字. 保存的三种方式. ctrl+s. 点击文件选择保存,或另存为. 快速工具栏保存按钮. 设置字体 1.通过工 ...

  3. JVM 常用参数一览表(转)

    参数 默认值或限制 说明 参数 默认值 功能 -XX:-AllowUserSignalHandlers 限于Linux和Solaris,默认不启用 允许为java进程安装信号处理器,信号处理参见类:s ...

  4. 原创】Java并发编程系列2:线程概念与基础操作

    [原创]Java并发编程系列2:线程概念与基础操作 伟大的理想只有经过忘我的斗争和牺牲才能胜利实现. 本篇为[Dali王的技术博客]Java并发编程系列第二篇,讲讲有关线程的那些事儿.主要内容是如下这 ...

  5. css定位属性的运用

    position 定位定位:主要解决叠加排列的问题.position 1.static(默认) 2.relative : 相对定位 如果没有定位偏移量,对元素本身没有任何影响(一般用于需要加定位的父容 ...

  6. 【Deep Learning读书笔记】深度学习中的概率论

    本文首发自公众号:RAIS,期待你的关注. 前言 本系列文章为 <Deep Learning> 读书笔记,可以参看原书一起阅读,效果更佳. 概率论 机器学习中,往往需要大量处理不确定量,或 ...

  7. DRF 序列化组件 模型层中参数补充

    一. DRF序列化 django自带有序列化组件,但是相比rest_framework的序列化较差,所以这就不提django自带的序列化组件了. 首先rest_framework的序列化组件使用同fr ...

  8. 洛谷1063 +区间dp(经典问题)

    题目网址:https://www.luogu.com.cn/problem/P1063 题意大致是:给定一个序列An,第i个元组表示为(Ai,Ai+1),序列位置不变,当合并一个区间[l,l+1]时开 ...

  9. Asp.Net Core 学习教程2、使用ASP.NET Core中的RazorPages

    1.创建一个Asp.Net Core Web应用程序 1.1.打开VS2019 新建项目 1.2.选好项目位置后进入线面界面,选择Web应用程序 1.3.进去的页面结构如下 Pages 文件夹:包含 ...

  10. 面试刷题24:介绍一枚 JAVA妹妹?

    java提供的自动垃圾收集机制大大提高了程序员的开发效率. 但是自动垃圾收集不是万能的,明确jvm的内存结构,工作机制是设计高扩展应用的基础. 也是诊断jvm运行时问题的必备技能. 我是李福春,我在准 ...