首页
学习
活动
专区
工具
TVP
发布

设计模式(二)——UML介绍

引言 在正式介绍设计模式之前,我们有必要学习一下UML,因为我们需要一种直观表示方法来描述设计模式,这种方法即是UML。...UML是用户将所希望描述事物抽象为,描述内部结构和之间关系设计视图。...UML常用关系 在UML图中,常有以下几种关系:泛化(Generalization)、实现(Realization)、关联(Association)、聚合(Aggregation)、组合(Composition...(Diagram):UMLUML视图内容图形,比如用例、对象、包等。...02 UML表示 如图,由一个矩形框表示,矩形框分为3层: 第一层:名称;如果该类是抽象,则使用斜体; 第二层:属性,即成员变量,[可见性]名称:类型[=默认值]; 第三层:方法

73620

设计模式之前奏(UML

便看到了大话设计模式这本书,下了电子版看了看第一章,感觉相当不错,不仅通俗易懂,而且与实际案例相结合,可就是电子版,鄙人很少看小说,所以立马在京东下单买了本。...就是给力…… 看了看书,翻了翻,第一章简单工厂模式最后讲解UML,以前见到过,但从来没画过,也就是一眼而过。但是又好好看了看书,后面几乎每种模式都会用UML来阐述设计模式整体架构。...所以就回过头来好好把第一章最后UML看了一下,在这里进行做一下笔记。 首先看一张完整UML图示样例 ?...它表示一个接口,与区别主要是顶端有《interface》显示。第一行是接口名称,第二行是接口方法。接口还有另外一种表示方法,俗称棒棒糖表示法,比如图中唐老鸭就是实现了"讲人话"接口。...对于UML来说,大体上也就这几种关系,其实也不算难。但是UML也不是一学就会,需要有个慢慢熟练过程。

84330
您找到你想要的搜索结果了吗?
是的
没有找到

02-设计模式 UML

UML 基本介绍 UML(统一建模语言),是一种用于软件系统分析和设计语言工具,它用于帮助软件开发人员进行思考和记录思路结果 UML本身是一套符号规定, 就像数学符号和化学符号一样,这些符号用于描述软件模型中各个元素和他们之间关系... 画图其实和写文章差不多,都是把自己思想描述表达出来,关键是在于思路和条理 分类 用例 use case 静态结构图 , 对象, 包, 组件, 部署 动态行为 交互(时序与协作图...), 状态, 活动 说明: 是描述之间关系, 是UML 图中最核心, 同样也是设计模式核心 UML 基本介绍 用于描述系统中(对象)本身组成和(对象)之间各种静态关系...如果是成员属性 如果是方法返回类型 如果是方法接收参数类型 方法中有使用到 泛化(继承)关系 泛化其实就是继承, 是依赖关系一种特殊情况 代码 package com.dance.design.uml.ext...刚才在点击IDEA时候发现IDEA其实默认是带了Diagrams这个插件,这个也挺好用直接就能显示,但是好像不能修改,但是可以控制方法,构造,接口这些是不是展示,感觉也挺好, 有喜欢可以去试试

58020

图解Java设计模式UML

3.1 UML基本介绍 1)UML – Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计语言工具,它用于帮助软件开发人员进行思考和记录思路结果...UML UML分类 : 1)用例(use case) 2)静态结构图:、对象、包、组件、部署 3)动态行为 :交互(时序与协作图)、状态、活动 说明: 1)是描述之间关系...,是UML图中最核心 UML 1)用于描述系统中(对象)本身组成和(对象)之间各种静态关系。...2)之间关系 :依赖、泛化(继承)、实现、关联、聚合与组合 3)简单举例 ? - 依赖关系(Dependence) 只要是在中用到了对方,那么它们之间就存在依赖关系。...小结 1)中用到了对方 2)如果是成员属性 3)如果是方法返回类型 4)是方法接收参数类型 5)方法中使用到 - 泛化关系(generalization) 泛化关系实际上就是继承关系

1.2K30

23种常用设计模式UML

23种常用设计模式UML 本文UML参考《Head First 设计模式》(源码)与《设计模式:可复用面向对象软件基础》(源码)两书中介绍设计模式UML。...整理常用设计模式,一方面是为了练习UML,另一方面可以重新思考设计模式。当然,整理完成后可以作为一份手册供今后翻阅。...绘图工具:Visual Studio 2015 一、创建型 Factory Method(工厂方法) 定义:定义了一个创建对象接口,但由子类决定要实例化是哪一个。...工厂方法把实例化推迟到子类。 : Abstract Factory(抽象工厂) 定义:提供一个接口,用于创建相关或依赖对象家族,而不需要明确指定具体。...: 四、其他资料参考 设计模式UML 23种设计模式 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/154324.html原文链接:

51630

设计模式——工厂方法设计模式_java

接下来将介绍第二种设计模式工厂方法设计模式工厂设计模式一共有三种,静态工厂工厂方法还有抽象工厂。 如果你仔细看了的话昨天uml和文本是今天uml 和文本,今天应该是昨天静态工厂。...也就是说今天才是静态方法,而昨天工厂方法! (太粗心了。望读者见谅。标题搞反了) (很多时候会结合单例模式,new出来对象是单例) 简单UML(有瑕疵)如下 ?...package org.huey.partten.factory.staticfactory; /** * 抽象实体 * 静态工厂 也叫简单工厂 * @author huey * */ public...this.getClass().getSimpleName() + "跑起来了"); } } package org.huey.partten.factory.staticfactory; /** * 工厂...ComputerFactory computerFactory = new ComputerFactory(); //创建对象,并执行方法

27921

设计模式UML及Java之间关系

UML展示 ?...设计模式对象关系 关联和依赖对比 依赖关系  虚线箭头 依赖是a成员方法中有b属性,动物新陈代谢方法中有水和空气属性,只有调这个方法时候,才可能临时用一下 关联关系  实线 连接...大多数情况下,依 赖关系体现在某个方法使用另一个对象作为参数。 • 在UML中,依赖关系用带箭头虚线表示,由依赖一方指向被依赖一方。 ?...在UML中,与接口之间实现关系用带空心三角形虚线来表示。 ?...关系对象出现在实例变量中 (5) Generalization: extends (6) 实现: implements 参考: https://www.cnblogs.com/1446358788-qq/tag/设计模式

1.8K20

设计模式UML常见关系(一)

本篇会讲解在UML图中,常见几种关系: 泛化(Generalization),依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition...2.依赖关系 依赖关系表示为一个使用另一个,这种使用关系是具有偶然性、临时性、非常弱,一个变化会影响到另一个,是use a关系,如果类A依赖于B,那么B可以是A局部变量,或A方法参数...,或静态方法调用。...用了就加强了关系,不用还是我只知道你存在。聚合可以方便持有多个引用,如使用List,所以当你发现有List等集合是可以使用聚合来表示,比如观察者模式结构。...说下最基本依赖注入方式吧,一种是setter方法或属性注入,如聚合关系中体现,使用一个方法或属性来完成注入,另一种是构造函数注入,如组合关系中体现,还有一种是接口注入,通过接口来实现信息注入,而其它要实现该接口时

1.2K10

设计模式学习(四)-UML之间关系

为了后续更好看懂直接关系这里我们就先要了解下UML。 统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图可视化建模语言。...而且融入了软件工程领域新思想、新方法和新技术,使软件设计人员沟通更简明,进一步缩短了设计时间,减少开发成本。它应用领域很宽,不仅适合于一般系统开发,而且适合于并行与分布式系统建模。...UML 从目标系统不同角度出发,定义了用例、对象、状态、活动、时序、协作图、构件、部署等 9 种。 这里简单介绍下设计模式种经常用到,以及之间关系。...、接口和 (Class)是指具有相同属性、方法和关系对象抽象,它封装了数据和行为,是面向对象程序设计(OOP)基础,具有封装性、继承性和多态性等三大特性。... 3 所示是“计算长方形和圆形周长与面积”,图形接口有计算面积和周长抽象方法,长方形和圆形实现这两个方法供访问调用。 ?

1.2K10

设计模式系列(2):图文并茂详解UML

UML(Unified Modeling Language,统一建模语言),是一种用于软件系统分析和设计语言工具,用于帮助软件开发人员进行思考和记录思路结果 UML本身是一套符号规定,通过这些符号...,来描述软件模型中各个元素之间关系;比如、接口、实现、泛化、依赖、组合、聚合等 UML目的 上面有介绍,UML是一种语音,语言核心作用就是用来交流;不过他交流方式并不是以传统意义上说进行...这里还有另外一个主要目的,为了后续设计模式过程中,结合UML,能更好理解。...UML分类 用例 静态结构图 对象 组件 部署 动态行为 时序 协作图 交互 状态 活动 说明: 是描述之间关系,是UML图中最核心部分;后续设计模式讲解...; 接口是一个方法集合,在实现关系中,实现需要实现接口中定义所有方法; 接口主要用来定义一对象中,部分拥有的行为; 例如:所有的门都拥有开关门行为,但是并不是所有的门都有门铃行为,对于这种不是所有对象都有用行为

56820

设计模式——抽象工厂设计模式_java

又好久没来了,接下来将分享工厂模式最后一个设计模式:抽象工厂设计模式。 抽象工厂一般解决是产品族概念。一个工厂创建整个产品优劣组件,从根本上说是多中产品,而相互依赖,构成一个抽象产品。...其UML如下: ?...工厂模式总结: 1.简单工厂也是静态工厂。也是项目中常用,因为简洁。创建出来实例有的时候是单例。...结合使用 2.工厂方法是简单工厂进一步扩展,可以动态去扩展,不用改代码,只是增加代码,ocp思想。但是 造几种产品就需要几个工厂,代码量大。...3.抽象工厂一般用于产品族概念,不同优劣产品组成不同抽象产品。 工厂模式是最简单,也是最常见设计模式。一般你看到是xxxFactory一般都是工厂模式实现。 下次将分享建造者模式

36521

设计模式工厂模式-工厂方法模式

设计模式工厂模式-工厂方法模式 大家好,欢迎来到污污弹公司,今天司小司又接到了一个新活-披萨项目。...经过分析之后得到如下: 第一次设计:使用简单工厂模式(可以参考上一篇司小司面馆项目)发现不行。为什么呢? 随着披萨越来越火,很多地方都要加盟了。...如果加盟的话,每个地方都要创建一个简单工厂模式那样,同样代码,就要创建很多份,在维护时候,就很麻烦。 选择第二种设计工厂方法模式。...,我们可以得到以下: 工厂方法模式设计方案: 将披萨项目里披萨对象实例化功能抽象成抽象方法,在不同加盟店具体实现功能。...工厂方法模式和简单工厂模式对比: 简单工厂模式: 根据标识,通过工厂对象就可以得到具体实例对象了。在工厂对象里面,对象实例化如下: 对象实例化,是在工厂对象里面。

38930

设计模式-工厂模式(简单工厂工厂方法、抽象工厂

文章目录 简单工厂 工厂方法 抽象工厂 简单工厂 ---- 简单工厂模式是属于创建型模式,是工厂模式一种。简单工厂模式是由一 个工厂对象决定创建出哪一种产品类实例。...定义了一个创建对象,由这个来封装实例化对象行为(代码)。当我们会用到大量创建某种、某类或者某批对象时,就会使用到工厂模式。...由于创建实例方法通常为静态(static)方法,因此简单工厂模式又被成为静态工厂方法模式(Static Factory Method)。...这样一来,当添加新产品C时,只需要修改工厂部分代码即可,而传统方法需要在每一个创建产品地方都进行修改。可以理解为把具体产品创建封装成一个工厂。...(比如增加一个法院地块) 工厂方法进一步解耦合,把工厂抽象,不再负责所有实例创建,而是把具体创建工作交给了子类去完成,实例化延迟到子类加载,由子类来决定要实例化

1.9K42

设计模式|工厂方法模式

一、工厂方法模式概念 工厂方法模式创建模式,又叫做虚拟构造子(Cirtual Constructor)模式或者多态工厂(Polymorphic Factory)模式。...工厂方法模式用意是定义一个创建产品对象工厂接口,将实际创建工作推迟到子类中。 首先,在工厂方法模式中,核心工厂不再负责所有产品创建,而是将具体创建工作交给子类去做。...工厂方法模式所创建每一个对象都是某个具体产品角色实例。 结合披萨系统,用白话文来说就是之前厨师(工厂)负责所有的烤披萨任务,太累了。...附上代码前先来看看完整 ?...四、总结 工厂方法模式和简单工厂模式比较: 工厂方法模式跟简单工厂模式在结构上不同是很明显工厂方法模式核心是一个抽象工厂,而简单工厂模式核心在一个具体

29010

设计模式 | 工厂方法模式

说明 这个设计模式属于创建型, 也是常用设计模式之一, 工厂模式分为: 简单工厂工厂方法、静态工厂、抽象工厂 我们这篇主要介绍工厂方法模式, 工厂方法就是为了解决简单工厂扩展性问题,相信大家再看简单工厂是也发现了其缺陷...,以前简单工厂要扩展时候,需要修改工厂内容,这就违背了设计模式对外扩展开放,对内修改关闭原则 ?...应用场景 当你不知道该使用对象的确切类型时候 客户程序使用对象存在变动可能,或者根本就不知道使用哪一个具体对象。...当你希望为库或者框架提供扩展其内部组件方法时 主要优点 解耦 符合原则 主要组成 抽象工厂接口 工厂接口实现 抽象产品 具体产品 示例 多种数据库操作使用工厂方法实现 <?...,客户端无需感知, 例如我多增加一个oracle数据库操作 使用者 * 不需要知道这个东西如何创建, 而我们只需要声明好接口即可 */ $server = new MySqlFactory();

28320

设计模式~工厂方法模式

工厂方法模式创建模式,又叫虚拟构造函数模式或多态性工厂模式工厂方法模式用意是定义一个创建产品对象工厂接口,将实际创建工作推迟到子类中。...但,简单工厂模式缺点是对开闭原则支持不够,因为如果有新产品加入到系统中,就需要修改工厂,将必要逻辑加入到工厂中。 工厂方法模式结构 ?...从上图可以看出,这个使用了工厂方法模式 系统涉及到以下角色: 抽象工厂角色(Creator):担任这个角色工厂方法模式核心,它是与应用程序无关。任何在模式中创建对象工厂必须实现这个接口。...抽象产品角色(Product): 工厂方法模式所创建对象超类型,也就是产品对象共同父或共同拥有的接口。...设计如下: ?

23230

设计模式工厂方法模式

工厂方法和原型模式都是创建型设计模式,但它们目的不同。工厂方法模式目的是通过定义一个用于创建对象接口来将对象创建委托给子类,而原型模式目的是通过复制现有对象来创建新对象。...工厂方法模式中,我们定义了一个用于创建对象接口,并将对象实际创建委托给子类。这使得我们可以在不修改客户端代码情况下添加新类型对象。...例如,如果我们有一个具体Person,我们可以使用该类实例来创建新实例。...因此,工厂方法模式和原型模式之间最大区别在于它们解决了不同类型问题:工厂方法模式解决了如何动态地创建对象,而原型模式解决了如何复制现有对象以创建新对象。...示例: 这是一个Go实现工厂方法模式示例代码¹: package main import "fmt" type Animal interface { Speak() string } type

9110

设计模式工厂方法模式

工厂方法(Factory Method)模式 工厂方法模式创建模式,其用意是定义一个创建产品对象工厂接口,将实际创建工作推迟到子类中。...在工厂方法模式中,==核心工厂不再负责所有产品创建,二十将具体创建工作交给子类去做。==这个核心仅仅负责给出具体工厂必须实现接口,而不接触哪一个产品类被实例化这种细节。...工厂方法模式是简单工厂模式进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式优点,而且部分克服了它缺点。...工厂方法模式角色 抽象工厂(Creator)角色 是工厂方法模式核心,与应用程序无关。任何在模式中创建对象工厂必须实现这个接口。...在工厂方法模式中,客户端不需要知道具体产品类名,只需要知道所对应工厂即可,具体产品对象由具体工厂创建,可将具体工厂名存储在配置文件或数据库中。 抽象工厂通过其子类来指定创建哪个对象。

40320
领券