首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

对于UML图,我的依赖项应该从类到接口,还是从类到具体类型?

对于UML图,依赖项应该从类到接口。

依赖关系表示一个对象(类)在运行时使用了另一个对象(类)的服务或者功能。在UML图中,依赖关系可以通过箭头来表示,箭头从使用者指向被使用者。

在依赖关系中,从类到接口的依赖表示类依赖于接口定义的方法和属性,而不关心具体的实现。这种设计可以实现低耦合,提高代码的灵活性和可扩展性。类通过依赖接口而不是具体类型,使得可以方便地替换具体的实现,同时遵循了开闭原则。

相比之下,从类到具体类型的依赖关系会导致高耦合,降低代码的可维护性和可扩展性。因为当依赖的具体类型发生改变时,就需要修改依赖类的代码,这违背了开闭原则和面向接口编程的思想。

在实际应用中,推荐使用依赖接口的方式,这样可以提高代码的灵活性和可扩展性。例如,在前端开发中,如果使用类到具体类型的依赖关系,当需要更换具体的实现时,就需要修改大量的代码,而使用类到接口的依赖关系,只需要修改接口的实现即可。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性的云服务器实例,满足各种规模和业务需求。详情请参考:https://cloud.tencent.com/product/cvm
  • 腾讯云对象存储(COS):提供安全、可靠、低成本的云存储服务,支持海量数据存储和访问。详情请参考:https://cloud.tencent.com/product/cos
  • 腾讯云云数据库 MySQL版(TencentDB for MySQL):提供高可用性、可扩展性的云数据库服务,适用于各种规模的应用。详情请参考:https://cloud.tencent.com/product/cdb-for-mysql
  • 腾讯云人工智能开放平台(AI Lab):提供丰富的人工智能服务和算法模型,帮助开发者构建智能化的应用。详情请参考:https://cloud.tencent.com/product/ai-lab
  • 腾讯云物联网开发平台(IoT Explorer):提供全面的物联网开发服务,帮助开发者快速实现智能设备的连接和管理。详情请参考:https://cloud.tencent.com/product/iotexplorer
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

UML建模实战笔记(全)

uml中领域模型被描述为一组没有操作具体说不是Java里面的软件对象或者具有职责行为对象。他可以展现领域对象或概念,概念之间关联,概念属性。 三个要素,名,属性 ,关联。...对于bike来说我们应该看route端角色和多重值,对于一个bike来说每个自行车对于0个或者多个骑行路线,0个是因为虽然有一个自行车但是可以不骑行,不指定骑行路线那,多个是因为一个自行车可以指定多个骑行路线...组合聚合:组合聚合是聚合一种情况,不同在于部分类生命周期依赖整体uml中使用一条整体部分类实线,并在整体关联末端画一个填充棱形标示: ?...5.4.依赖: 依赖即一个实现需要其他协助,通常代码表现为方法参数,局部变量,静态方法调用,util调用,uml中使用一条箭头虚线,依赖方指向被依赖 ?...最后Book双向关联Author,数目一个作者至少写了1本书(严格说应该是0),一本书至少有一个作者编写, Account账户依赖一个AccountState枚举值用来存放账号状态。

2.8K41

UML建模(

一、 是面向对象系统建模中重要,是定义其它基础。主要是用来展现软件系统中接口以及它们之间静态结构。...对于bike来说我们应该看route端角色和多重值,对于一个bike来说每个自行车对于0个或者多个骑行路线,0个是因为虽然有一个自行车但是可以不骑行,不指定骑行路线那,多个是因为一个自行车可以指定多个骑行路线...组合聚合:组合聚合是聚合一种情况,不同在于部分类生命周期依赖整体uml中使用一条整体部分类实线,并在整体关联末端画一个填充棱形标示: ?...5.4.依赖: 依赖即一个实现需要其他协助,通常代码表现为方法参数,局部变量,静态方法调用,util调用,uml中使用一条箭头虚线,依赖方指向被依赖 ?...image.png 一个例子 UML官方网站搞了个 域模型 ?

99220
  • UML简单介绍-如何看懂UML(二)

    你画了一个三角形说这是一个接口花了一个圆形,跟你讲这个是接口?这其中问题不言而喻。...UML是面向对象程序设计描绘语言 是面向对象程序设计建模语言,是对面向对象程序设计世界抽象 UML基本逻辑是很简单 将面向对象程序设计中元素进行抽象,比如还是接口UML中称之为事物...,比如A继承B 用于说明继承关系泛化关系是从子类关系,箭头指向是父 聚合关系是带空心菱形直线表示,比如 A聚合到B上,也就是B由A组成聚合关系用于,表达整体由部分构成语义,比如部门由许多人员组成整体和部分不是强依赖...总结 本文简单介绍了UML历史以及组成部分,目的不在于详细介绍UML,只在于能够读懂以及绘制 UML是可视化程序设计描绘语言,通过图形和符号直观表达含义 对于需要理解清楚相关关联关系...另外,不同软件对于各种图形表示可能局部细节会有差别,实际使用时应该注意 UML是Unified Modeling Language ,并不是一种具体工具,而是标准 UML建模工具就如同“实现

    1.3K20

    UML一一 关系 (泛化、实现、依赖、关联、聚合、组合)

    大家好,又见面了,是你们朋友全栈君。...,比如接口、实现、泛化、依赖、组合、聚合等,如下图 使用UML来建模,常用工具有 RationalRose , 也可以使用一些插件来建模 UML UML UML与写文章差不多,都是把自己思想描述给别人看...其他四种关系则体现、或者接口之间引用/横向关系。这四种关系所表现强弱程度来看,强到弱依次为:组合>聚合>关联>依赖。...在UML图中,继承通常使用 空心三角+实线 表示 接口之间泛化关系: 接口用圆心表示 之间泛化关系: 泛化关系表设计 对于面向对象中继承关系,设计表时候有三种情况: 共用一张表...关联关系判断方法: 判断都是对象实例上面来看 判断关系必须确定一对属性 判断关系必须确定具体需求 4.1、一对一关系 跳转到目录 表设计 4.2、单向一对多 跳转到目录 4.3

    7.2K40

    UML_03_

    一、前言 UML结构图,在接口层次上显示设计系统结构,显示它们特性、约束和关系等,是定义其它基础。 二、 ?...对于bike来说我们应该看route端角色和多重值,对于一个bike来说每个自行车对于0个或者多个骑行路线,0个是因为虽然有一个自行车但是可以不骑行,不指定骑行路线那,多个是因为一个自行车可以指定多个骑行路线...,has-a 关系 表示 uml中使用一条整体部分类实线,并在整体关联末端画一个未填充棱形标示: 示例 ?...两者有相同生命周期,contains-a 关系 表示 uml中使用一条整体部分类实线,并在整体关联末端画一个填充棱形标示 ?...5.依赖 依赖即一个实现需要其他协助,通常代码表现为方法参数,局部变量,静态方法调用,util调用 表示 uml中使用一条箭头虚线,依赖方指向被依赖 ?

    38550

    UML

    与关联关系不同是,依赖关系是以参数变量形式传入依赖依赖是单向,要避免双向依赖。一般来说,不应该存在双向依赖。...更具体地说,它可转换为对不在实例作用域内一个或对象任何类型引用。...AD: 本节和大家一起学习一下UML关系表示方法,主要包括关联,聚合,泛化,实现,依赖等内容,希望通过本节学习大家对UML关系表示方法有一定掌握。下面是具体介绍。...2.1关联表示法 2.2聚集与组合 3:泛化,继承【Generalization】 UML关系中泛化关系是一般描述和具体描述之间关系,具体描述建立在一般描述基础之上,并对其进行了扩展。...[具体表现]  父实例=new 子类()  [UML](1.1)  1.1 Animal与Tiger,Dog泛化关系  [代码表现]  class Animal{}

    1.3K30

    UML9种常用与建模工具详解「建议收藏」

    同时,也极大地方便了业务人员与开发人员之间交流。 UML常用建模 UML标准建模语言中5种主要类型: 1、用例 指的是用户角度来描述系统功能,并且指明各功能操作者。...它是变体,但是又与之不同,对象显示多个对象而不是实际。 4、活动 UML活动,顾名思义就是UML动态模型一种图形,对于系统功能建模特别重要。...UML各种之间区别: 1、各有其侧重点:比如说用例侧重于描述用户需求,而则侧重于描述系统具体实现。...5.Visio Visio 原来仅仅是一种画图工具,能够用来描述各种图形(电路房屋结构图),也是VISIO2000才开始引进软件分析设计功能到代码生成全部功能,它可以说是目前最能够用图形方式来表达各种商业图形用途工具...就暂时介绍这,如果大家有疑问,欢迎在评论区交流。 UML学习笔记 结构 封装了数据和行为,它是具有相同属性、操作和关系对象集合总称。

    12.9K31

    领域驱动设计,让程序员心中有码(三)

    如果说软件工程是在虚拟世界描绘出人类对于这世界一切大千万物美好想象,那么也许UML思想应该是这虚拟世界古老哲学。他就像卢梭在法国大革命前,描述在《社会契约论》一书中,对这自由世界期待。...不同子系统往往要建立不同模型,而需求分析代码过程中,不应该额外设计过多模型,这意味着,模型是单独为某一块业务设计。...2、其次是对象模型,采用对象、属性、操作、关联等概念展示系统结构和基础,包括、对象、包,侧重于对对象状态和行为特征进行定义,更加注重于具体执行层面。...对象是一个空间或时间维度对象在软件世界投影,而是抽象对象具体实现结构。包也是模型对象组合,通过包可以将不同类型对象按照一定特征进行结构化和更加合理逻辑定义。...接口作为契约,而作为具体执行者,去执行相应契约。

    49540

    2019-6-1-UML

    对于需要表现属性和操作,需要使用三层矩形,每层分别为名称,属性,操作。 ? 接口 接口表示方法很类似,也是使用直角矩形表示,不过接口会多一个关键字《interface》。...不同是,在对象命名上,采用添加下划线__对象名:名__ 例如一个名叫黄腾霄顾客。 ? 图中关系表示 在,常见关系使用方法有:实现、泛化、关联、聚合、组合、依赖等。...实现 实现专指接口实现,使用虚线三角表示。指向接口。 ? 泛化 泛化专指子类对父继承,使用实线三角表示,从子类指向父 ? 关联 关联是指图中两个类型实例之间联系。...注:实践上来说,这个标记基本没有什么大用处,完全可以使用普通关联代替。如果大家发现一些合适场景,可以联系 ?...针对实例场景,存在依赖通常表示某个是不完整,或者不能独立完成某些操作

    37230

    【信管1.8】软件工程(二)UML与面向对象分析

    一般我们会说子类实现了父抽象方法,或者说实现了接口方法。 UML 主要表现形式就是各种各样动静表示来看,可以分为 动态 和 静态 两种类型。 1....其中前三个阶段是必需,但是第四个阶段有一个很重要概念,就是用例之间关系,它包括以下三种关系。 包含关系(include)。当可以两个或两个以上用例中提取公共行为时,应该使用包含关系。...(与对象) 依赖关系:两个 A 和 B ,如果 B 变化可能会引起 A 变化,则称 A 依赖 B 。...说明就是我们程序代码中接口,只有方法定义没有方法体,而实现就是实现了接口,必须去实现具体接口方法。...参考资料: UML实践详细经典教程----用例、顺序、状态、包、协作图:http://www.uml.org.cn/oobject/201609092.asp UML图中之间关系:依赖

    64710

    JAVA进阶2 深入理解面向对象

    一个只负责一职责,应该仅有一个引起它变化原则  2.里氏替换原则(LSP)和依赖倒置原则(DIP)  子类可以扩展父功能,但不能改变父原有的功能  子类可以实现父抽象方法,但不能覆盖父非抽象方法...3.依赖倒置原则(DIP)  高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。...抽象应当拥有尽可能少数据与代码移动方向相反,数据移动方向是抽象具体,一个数据对象无论是否使用都会占用资源,因此数据应当尽量放到具体或等级结构低端。 ...状态机擅长表现单个对象跨用例行为,对于多个对象交互行为应该考虑采用顺序,不要对系统每个对象都画状态机,只对真正需要关心各个状态对象才绘制状态机。 ...UML部分摘自一本书忘了名称,如有侵权请告知,将立刻予以删除。

    48620

    【设计模式】第一篇:概述、耦合、UML、七大原则,详细分析总结(基于Java)

    【耦合】相关概念,若不需要跳转第三四大点【UML关系】/【设计模式七大原则】 在之前写 Spring依赖注入时候【万字长文】 Spring框架层层递进轻松入门(0C和D),就是传统开发...三 UML 之间关系 在一个相对完善软件系统中,每个都有其责任,之间,接口之间同时也存在着各种关系,UML(统一建模语言)从不同角度定义了多种,在软件建模时非常常用,下面我们说一下在设计模式中涉及相对较多...(三) 依赖倒置 定义: ① 高层模块不应该依赖低层模块,两者都应该依赖其抽象 ② 抽象不应该依赖细节,细节应该依赖抽象 先解释第 ① 点,其实这一点在我们以往分层开发中,就已经用过了,例如我们业务层...,不过一般情况,我们还是要遵循单一职责原则 (五) 接口隔离原则 定义: 客户端不应该被迫依赖于它不使用方法 或者——客户端不应该被迫依赖于它不使用方法 其实这一原则核心就是 “拆” ,如果在一个接口内存放过多方法等内容...下面还是用一个例子来说一下 假设在学校一个环境中,校长作为最高职务所有人,肯定不会直接参与对于老师和学生管理中,而是通过一层一层管理体系来进行统筹规划,这里校长,和老师学生之间就可以理解为陌生关系

    83451

    Java面试:2021.05.16(周末愉快!)

    这里复用代码方式应该是Has-A关系而不是Is-A关系,另一方面容器都属于工具,继承工具本身就是一个错误做法,使用工具最好方式是Has-A关系(关联)或Use-A关系(依赖)。...依赖倒转原则:面向接口编程。...(该原则说得直白和具体一些就是声明方法参数类型、方法返回类型、变量引用类型时,尽可能使用抽象类型而不用具体类型,因为抽象类型可以被它任何一个子类型所替代,请参考下面的里氏替换原则。)...(臃肿接口是对接口污染,既然接口表示能力,那么一个接口应该描述一种能力,接口应该是高度内聚。...例如,琴棋书画就应该分别设计为四个接口,而不应设计成一个接口四个方法,因为如果设计成一个接口四个方法,那么这个接口很难用,毕竟琴棋书画四样都精通的人还是少数,而如果设计成四个接口,会几项就实现几个接口

    43420

    UML快速入门

    序列UML中,序列(顺序)和协作图统一称为交互,序列较为常见,可以说是动态图中最重要类型了。序列建模元素包括:对象、生命线、控制焦点、消息等。...对象可以包含名和对象名,也可以包含部分;生命线是表示对象图标向下延伸一条虚线,表示对象存在时间;控制焦点是表示时间段符号,对象在该时间段内,执行相应操作,为生命线上小矩形;消息类型包括同步消息...一个简单序列图示例如下所示。 ? UML最主要静态,通过它可以完成软件系统基础骨架建立,属性包括:可见性、属性名、类型、多重性和初始值等;之间关系比较多,如下表所示。...此外由于太过常见,省略其示例 关系类型 说明 符号 继承关系 之间继承关系,箭头指向父 实现关系 对于接口实现 聚合关系 之间较弱耦合关系,类似鸟群有0只或多只鸟 组合关系 之间强耦合关系...依赖倒置原则(Dependency Inversion Principle, DIP):高层模块依赖于低层模块;具体依赖于抽象。

    1.1K90

    手绘设计模式结构图

    优点:封装了具体对象实例化过程,Client端和具体对象解耦,同时ProductManager可以作成静态或者Singleton对象,然后可以使用HashMap缓存具体对象(前提是对象没有时间依赖性...优点:结构更加灵活,对于某种类型对象来说,会有一个特定对象工厂指向它,这样当我们需要添加一种新类型产品时,只需要添加两个,一个是具体产品类,一个是新产品工厂。这样更加灵活。...桥接器完美的体现了这些,通过创建型模式,我们可以很好地达到面向接口编程目标,也就是说我们在程序中各变量声明类型接口类型或者抽象,而具体实现类型则由不同设计模式使用不同方式指定。...这在接口或者抽象基本稳定情况下,是很好地,但当接口需要发生变化时,我们如何去处理?可以看看桥接器UML: ?...另一种是透明型合成模式,UML如下: ? 这种类型合成模式,自上而下所有的Component都会有增、删、改操作,只不过对于Leaf来说,这些操作时没有意义

    1K10

    面向对象设计六大设计原则(附 Demo 及 UML

    而且两种代码都会附上标准 UML 来进行更形象地对比,帮助大家来理解。同时也可以帮助不了解 UML 读者先简单熟悉一下 UML 语法。...不以改动原有方式来实现新需求,而是应该以实现事先抽象出来接口(或具体继承抽象方式来实现。 优点 实践开闭原则优点在于可以在不改动原有代码前提下给程序扩展功能。...即: 依赖抽象,而不是依赖实现。 抽象不应该依赖细节;细节应该依赖抽象。 高层模块不能依赖低层模块,二者都应该依赖抽象。 定义解读 针对接口编程,而不是针对实现编程。...有兴趣小伙伴可以自己实现一下~ 下面来看一下这两个设计UML ,可以更形象地看出两种设计上区别: UML 对比 ? 未实践依赖倒置原则 ?...下面来看一下这两个设计UML ,可以更形象地看出两种设计上区别: UML 对比 ? 未实践接口分离原则 ?

    3.9K30

    一文带你读懂:设计模式六大原则

    ,即一个应该只负责一职责。...那么凡是程序员使用地方,无论对于程序员还是程序媛,都应该可以无缝替换。...好处: 大大降低程序运行出错概率。 接口隔离原则 接口隔离原则内涵: 客户端不应该依赖它不需要接口;一个对另一个依赖应该建立在最小接口上。...(原则中接口,是一个泛泛而言接口,不仅仅指Java中接口,还包括其中抽象) 举例子4: 这个意思是:A依赖接口I中方法1,方法2,方法3,B是对A依赖实现;C依赖接口...依赖倒置原则 依赖倒置原则内涵: 高层模块不应该依赖低层模块,二者都应该依赖其抽象; 抽象不应该依赖细节,细节应该依赖抽象。 核心思想是面向接口编程。

    67131

    02-设计模式 UML

    ,比如 接口 实现 泛化(继承) 依赖 组合 聚合 等 使用UML来建模,常用工具有Rational Rose, 也可以用一些插件来建模 UML建模插件(Eclipse版) 自行参考老师建模工具...UML建模插件(IDEA版) 因为现在开发中大多数都是使用IDEA,虽然视频中使用是Eclipse, 但是还是使用IDEA来写 在这个给大家推荐一个很好用UML插件 安装PlantUML...如果是成员属性 如果是方法返回类型 如果是方法接收参数类型 方法中有使用到 泛化(继承)关系 泛化其实就是继承, 是依赖关系一种特殊情况 代码 package com.dance.design.uml.ext...) 小结 泛化就是继承 感觉这个名词绝对是个坑, 继承就继承白, 还泛化, 面试时候肯定会有点蒙 实现关系 就是A实现了B接口, 其实也是依赖一种特殊情况 代码 package com.dance.design.uml.impl...有点不好,就是在解析时候不解析依赖关系, 其他都很好,哎后面还是用PlantUML吧(渣男本难) 小结 实现关系其实 没什么好说,这个是在开发中最常用 接口+impl 关联关系 关联关系其实就是之间关联

    68320

    万字多 | UML 入门指南

    对于 UML 这个概念,很多程序员朋友耳熟能详,也有在用,但在工作中,一些朋友其实并不擅长使用 UML 甚至对 UML 这个东西模棱两可,也包括自己。...我们要应用一技术或工具,不能单纯因为它酷炫或者说业界都在用所以我们要用,而应该结合自己使用场景以及技术或工具特点,来确认这项技术或工具究竟是不是我们需要。...下图是借阅图书系统用例视图。 ? 6.2.1.2 用于展示系统中及其相互之间关系。 建模常用方式是概念层,说明层,最后到实现层这么一个抽象层次逐步降低和细化过程。...下图展示了网上购物说明层,这个图表达了计算机视角来说,网上购物这个业务目标是由哪些来完成,这些接口保证了这个业务目标的达成。 ?...6.2.1.6 部署 部署描述了物理上系统运行时结构,包括系统中硬件分布以及软件部署硬件上具体方式。 部署用于设计建模阶段,采用节点和关系两种核心元素来绘制。

    85010

    SysML理论知识

    SysML为模型表示法提供完整语义。 39种 另有一种分类。SysML建模语言中模型如下图所示,可概括为39种。SysML可以分为行为、需求和结构图。三具体化为共计9种模型。...尽管OMG SysML重用许多UML2图表和结构,但是这种新SysML轻量级方言(Profile)远比它语言父成熟得多,因为它加剧UML2继承问题,并通过引入两种新图表类型(Requirement...与需求相关问题包括但不限于澄清分解/包含语义,分类,定义基本属性,澄清关系语义以及减少与用例语义重叠。 建议:用组合物替换遏制以进行需求分解。退出复制依赖。...建议:使用使用区别符号流替换分配依赖关系(不是使用关键字标记虚线箭头)。要求实现自动为AllocateActivityPartitions生成Allocate依赖。...实际上,虽然SysML为UML添加两个有用图表用法(需求扩展UML;参数扩展UML和复合结构图),但是SysMLUML借用其他图表要么在没有修改情况下重复使用(例如,用例),序列,状态机

    9910
    领券