23种常用设计模式的UML类图

本文UML类图参考《Head First 设计模式》(源码)与《设计模式:可复用面向对象软件的基础》(源码)两书中介绍的设计模式与UML图。

整理常用设计模式的类图,一方面是为了练习UML,另一方面可以重新思考设计模式。当然,整理完成后可以作为一份手册供今后翻阅。

绘图工具:Visual Studio 2015

一、创建型

  1. Factory Method(工厂方法)

    定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

    类图:

  2. Abstract Factory(抽象工厂)

    定义:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。

    类图:

  3. Builder(生成器模式)

    定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

    类图:

  4. Prototype(原型模式)

    定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    类图:

  5. Singleton(单件模式)

    定义:确保一个类只有一个实例,并提供全局访问点。

    类图:

    代码:


    public class Singleton
    {
        private volatile static Singleton uniqueInstance;
        private static object singletonData = new Object();
        private Singleton()
        { }
        public static Singleton GetInstance()
        {
            if (uniqueInstance == null)
            {
                lock (singletonData)
                {
                    if (uniqueInstance == null)
                    {
                        uniqueInstance = new Singleton();
                    }
                }
            }
            return uniqueInstance;
        }
    }

二、结构性

  1. Adapter(适配器模式(类、对象))
    定义:将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。

    类图:

  2. Bridge(桥连模式)

    定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。

    类图:

  3. Composite(组合模式)

    定义:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。

    类图:

  4. Decorator(装饰模式)

    定义:动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更加灵活。

    类图:

  5. Facade(外观模式)

    定义:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高级接口,这个接口使得这一子系统更加容易使用。

    类图:

  6. Flyweight(享元模式)

    定义:运用共享技术有效地支持大量细粒度的对象。

    类图:

  7. Proxy(代理模式)

    定义:为其他对象提供一种代理以控制对这个对象的访问。

    类图:


三、行为型

    1. Interpreter(解释器模式)

      定义:给定一个语言,定义它的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。

      类图:

    2. Template Method(模板方法)

      定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

      类图:

    3. Chain of Responsibility(职责链模式)

      定义:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。

      类图:

    4. Command(命令模式)

      定义:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

      类图:

    5. Iterator(迭代模式)

      定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。

      类图:

    6. Mediator(中介模式)

      定义:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。

      类图:

    7. Memento(备忘录模式)

      定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。

      类图:

    8. Observer(观察者模式)

      定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都得到通知并被自动更新。

      类图:

    9. State(状态模式)

      定义:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。

      类图:

    10. Strategy(策略模式)

      定义:定义一系列的算法,把它们一个个封装起来,并且使它们可互相替换。本模式使得算法可独立于使用它的客户而变化。

      类图:

    11. Visitor(访问者模式)

      定义:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的前提下定义作用于这些元素的新操作。

      类图:

原文地址:https://www.cnblogs.com/phight/p/10333060.html

时间: 2024-08-12 03:49:25

23种常用设计模式的UML类图的相关文章

设计模式前言——UML类图

设计模式前言--UML类图 一.UML类图 1.类 类(Class)封装了数据和行为,是面向对象的重要组成部分,是具有相同属性.操作.关系的对象集合的总称.在系统中,每个类都具有一定的职责,职责指的是类要完成什么样的功能,要承担什么样的义务.一个类可以有多种职责,设计得好的类一般只有一种职责.在定义类的时候,将类的职责分解成为类的属性和操作(即方法).类的属性即类的数据职责,类的操作即类的行为职责.设计类是面向对象设计中最重要的组成部分,也是最复杂和最耗时的部分.在软件系统运行时,类将被实例化成

设计模式之UML类图的常见关系

设计模式之UML类图的常见关系 本文来自转载 烧点饭博客 本篇会讲解在UML类图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition). 1.泛化关系 泛化关系是继承或实现的关系,是is a关系,具体表现为类与类的继承,接口与接口的继承,类对接口的实现关系. 2.依赖关系 依赖关系表示为一个类使用另一个类,这种使用关系是具有偶然性的.临时性的.非常弱的,一个类的变化会影

设计模式之UML类图

本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020 之前,在工厂方法模式中画的图,不是很严格的符合UML类图,所以今天特地看了一下UML类图,下面内容大部分摘自"大话设计模式". UML的基本图示法 UML类图图示样例 类图: 如上图,矩形框就代表一个类(Class).分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示.第二层是为类的特性,通常就是字段和属性.第三层是类的操作,通常是方法或行为.注意前面的的符号,

设计模式之UML类图以及类间关系

类图是描述系统中的类,以及各个类之间的关系的静态视图.能够让我们在正确编写代码以前对系统有一个全面的认识.类图是一种模型类型,确切的说,是一种静态模型类型.类图表示类.接口和它们之间的协作关系. 以下类图都是用 Visio 画的,因为这学期体系结构老师的实验报告强制使用这个软件画图. 类图的组成 普通类 一个类图由三部分组成. 第一部分是类名: 第二部分是属性,即成员变量.格式为:可见性 属性名称:类型[ = 缺省值]. 第三部分是操作,即方法.格式为:可见性 方法名称(参数列表)[ : 返回类

设计模式前站——UML类图

符号表示访问权限: +表示public -表示private #表示protected ~表示default,也就是包权限 _下划线表示static 斜体表示抽象 类之间关系:类与类一共有如下几种关系:继承(Generalization).实现(Realization).依赖(Dependence).关联(Association).聚合(Aggregation).组合(Composition). 继承:三角形+实线[三角是父类] 实现:三角形+虚线[三角是接口] 依赖:箭头+虚线[箭头是局部变量

UML类图中的几种关系总结

       UML类图,描写叙述对象和类之间相互关系的方式包含:依赖(Dependency).关联(Association).聚合(Aggregation).组合(Composition).泛化(Generalization).实现(Realization)等. 依赖(Dependency) A依赖B,表示A会使用B的行为或属性,但B不能使用A的行为.属性,那么A和B的关系是依赖关系. uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素. 演示样例代码 : class B

《大话设计模式》笔记-基础知识1:UML类图基础知识

好多计算机技术书籍或者文章中常用到UML类图,本书作者介绍每一种设计模式就是用类图+面向对象语言小程序(用的C#,其基础知识另文介绍)+人物对话解释知识点.本文就是介绍<大话设计模式>中所用到UML类图的基础知识. 上图是一个整体的图,特别要注意各种样式的箭头,下文分别用局部小图说明各知识点. 类 类图分三层: (1)      类名称,如果是抽象类就用斜体标识.本例,类名称是"动物",且其是一个抽象类. (2)      类特性,通常是字段和属性.本例,类特性是"

设计模式@第3章:UML 类图

第3章:UML 类图 一.UML 基本介绍 UML--Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果. UML 本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类.接口.实现.泛化.依赖.组合.聚合等. 使用 UML 来建模,常用的工具有 Rational Rose , 也可以使用一些插件来建模 二.UML 图 画 UM

设计模式之序章-UML类图那点事儿

设计模式之序-UML类图那点事儿 序 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书我还隐约记得,叫GoF的,书名是<Design Patterns: Elements of Reusable Object-Oriented Software>,也即<设计模式>,机械出版社的将其翻译为<设计模式-可复用面向对象软件的基础>.至于为什么叫做GoF,那时候