设计模式学习——类图

模仿学习(Imitation Learning)概述 什么是模仿学习呢?简单来说,模仿学习(Imitation Learning),就是要训练机器能够复制人类的连续动作,进而达到模仿的目的。其实,Imitation Learning的实用性很高,假设今天有一个训练场景,你不知道该怎么定奖励值(reward),但是你可以收集到专家的示范数据(expert demonstration data),你就可以考虑用Imitation Learning这个方法。因此,模仿学习也被寄予很高的期待,成为下一代强人工智能的关键技术。...... 阅读详情

前言

  1. 类图是描述类与类之间的关系的,是UML图中最核心的
  2. 在讲解设计模式时,我们必然会使用类图,为了能够把设计模式学到位,需要首先了解类图

UML基本介绍

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

UML 类图

  1. 用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系,
  2. 类之间的关系:依赖、泛化(继承)、实现、关联、聚合和组合。
    在这里插入图片描述



类图——依赖关系(Dependence)

只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编译都通过不了。

public class PersonServiceBean{
    private PersonDao personDap; //类
    public void save(Person person){}
    public IdCard getIdCard(Integer personid){}
    public void modify(){
       Department department=new Department();
    }
}

public class PersonDao{}
public class IdCard{}
public class Person{}
public class Department{}

类图依赖关系实例:
在这里插入图片描述
小结:

  1. 类中用到了对方
  2. 如果是类的成员属性
  3. 如果是方法的返回类型
  4. 是方法接收的参数类型
  5. 方法中使用到的



类图——泛化关系(generalization)

泛化关系实际上是继承关系,他是依赖关系的特例。

public abstract class DaoSupport{
      public void save(Object entity){
      }
      public void delete(Object id){
      }
}
public class PersonServiceBean extends Daosupport{
}

类图泛化关系实例:
在这里插入图片描述
小结:

  1. 泛化关系就是继承关系
  2. 如果A类继承了B类,我们就说A和B存在泛化关系



类图——实现关系(Implementation)

实现关系实际上就是A类实现B类,他是依赖关系的特例

public interface PersonService{
     public void delete(Integer id);
}
public class PersonServiceBean implements PersonService{
     public void delete(Integer id){}
}

类图实现关系实例:
在这里插入图片描述



类图——关联关系(Association)

关联关系实际上就是类与类之间的联系,就是依赖关系的特例
关联具有导航性:即双向关系或单向关系
关系具有多重性:如“1”(表示有且仅有一个),“0…”(表示0个或者多个),“0,1”(表示0个或者一个),“n…m”(表示n到m个都可以),“m…”(表示至少m个)。
单向一对一关系

public class Person{
   private IdCard card;
}
public class IdCard{}

双向一对一关系

public class Person{
      private IdCard card;
}
public class IdCard{
     private Person person;
}


类图——聚合关系(Aggregation)

聚合关系(Aggregation) 表示的是整体和部分的关系,整体与部分可以分开,聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。

public class Computer{
    private Mouse mouse;
    private Monitor monitor;

    public void setMouse(Mouse mouse){
       this.mouse=mouse;
    }
    public void setMonitor(Monitor monitor){
       this.monitor=monitor;
    }
}

类图聚合关系实例:
在这里插入图片描述



类图——组合关系(Composition)

组合关系(Aggregation) 表示的是整体和部分的关系,整体与部分不可以分开
根据一个对比案例:
Person与IdCard、Person与Head,那么Head和Person就是组合,IdCard和Person就是聚合。

public class Person{
     private IdCard card;
     private Head head=new Head();
}
public class IdCard{}
public class Head{}

/**
  *  因为头和人是无法分隔的,所以是整体与部分不可以分开,故而是组合关系,
  *  而人和身份证是相互独立的,没有身份证人可以存活,所以是整体与部分是可以分开的,
  *  故而是聚合关系。
  **/

类图组合关系实例:
ps:person和Head、IdCard,二者之间的关系。
在这里插入图片描述

定位教程7---旋转中心标定之方法二 手算相机相对机器人关系 阅读详情

相关推荐

Windows10检查Cuda和cuDNN是否安装成功?

简介:根据上篇博客已经完成了CUDA和cuDNN的安装步骤,完成对其的安装。下面将来检查它们是否安装成功。 1 .首先win+R进入CMD,在命令行输入nvcc -V,如下图所示,则表示cuda已经安装成功。 2 .进入到cuda的安装路径,C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite,找到如下两个.exe文件: 首先执行:deviceQuery.exe,查看是否出现如下界面: 然后执行bandwid

jhsignal的博客 14万+

类图中的聚合关系(aggregation)和组合关系(composition)比较

前言 在画类图时,空心菱形(聚合关系)和实心菱形(组合关系)两者分别在什么场景下使用?由于两者概念有些相近,相信搞混的人还是存在的。本文通过类图对比来说明两者的根本区别。 X先生的回答 空心菱形代表has - a 即持有/拥有的意思 实心菱形代表part - of 即 ~的一部分的意思 所以,人拥有车用空心菱形表示,轮胎是车的一部分用实心菱形表示。如下图所示

王命风的博客 1万+

【若依(ruoyi)】BootstrapTable列宽定制实战:突破width属性限制的两种方案

本文针对若依(RuoYi)框架中BootstrapTable组件列宽设置失效的常见问题,提供了两种实战解决方案。通过CSS样式覆盖法强制定义列宽,或利用formatter函数进行动态HTML包裹,有效突破width属性限制,实现精准的表格列宽定制。

weixin_29013129的博客 174

UML:类图

类图用于展示系统中的类及其相互之间的关系。本质上说,类图是现实世界问题领域的抽象对象的结构化、概念化、逻辑化描述。对类的理解有三个层次的观点,分别是概念层、说明层和实现层。在UML中,从开始的需求到最终的设计类,类图也是围绕着这三个层次的观点进行建模的。类图建模是先概念层,再说明层,进而实现层这样一个随着抽象层次的逐步降低而逐步细化的过程。 概念层类图 概念层的观点认为,在这个层次的类图描述的是现...

江南好 5816

使用网分对晶体ESR/L1/C1/C0进行测量计算

Use R&S Vector Network Analyzer test XTAL ESR/L1/C1/C0 測量方法:使用儀器的Port1端口,測量XTAL的S11,通過諧振的參數計算出ESR/L1/C1/C0的值。 實際晶體的等效模型:通常方便晶體分析,使用下圖(b)的等效模型,但實際測量發現晶體存在多個串聯諧振點,實際等效模型更接近(c)。 儀器測量到的S11,其中M...

qq_39138630的博客 2085

Unity 实现动态网格地图生成与交互组件

本文详细介绍了在Unity中实现动态网格地图生成与交互组件的完整方案。从基础网格单元实现到高级交互功能,涵盖网格生成器核心逻辑、事件驱动架构、性能优化技巧以及六边形网格等特殊实现。特别适合游戏开发者学习如何构建战棋、模拟经营类游戏的可交互地图系统,提升开发效率与用户体验。

weixin_29015483的博客 1068

java之uml类图的介绍

sUML和建模软件Rose的使用已在上一篇介绍过了,这一篇我们继续介绍画图方法。 我们介绍“ 类图”: 用于描述系统中的类与类之间的各种关系。 继承:父子类关系; 实现:类与接口关系; 关联(全局变量, 组合/聚合): 值、引用; 依赖:局部变量(非Spring中 依赖注入)。 1.类图举例 我们在Rose中创建类图的方法: 创建一个实体: 然后鼠标放在实体上面,单击鼠标右键,可以添加这个实体类的属性和方法: 添加一个属性,然后双击属性,点检attribute可以设置属性的详细: 然后我们再添加一个name

weixin_43435032的博客 1143

find命令

命令是 Linux/Unix 系统中用于搜索文件和目录的强大工具,支持多种搜索条件组合,并能对搜索结果执行各种操作。以下是其详细说明、常用参数及示例: 搜索路径:指定起始目录(如 、 或 表示当前目录)。 查找条件:基于文件名、类型、大小、时间等属性过滤。 处理动作:对匹配结果执行操作(如打印、删除、执行命令等)。 常用参数及示例 1. 按名称查找 :区分大小写匹配文件名。 :不区分大小写匹配文件名。 2. 按文件类型查找 :指定文件类型。 文件类型: :普通文件 :目录 :符号链接

qiao2458的博客 1136

(Java进阶-设计模式)UML类图

统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。 UML从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等9种图。 1.1 类图概述 类类图(Class diagrsam)是显示了模型的静态结构,特别是模型中存在的类图、类的内部结构以及它们与其他类的关系等。类图不显示暂时性的信息。类图是面向对象建模的主要组成部分。 1.2 类图的作用

weixin_45636230的博客 504

从RADIUS服务器到AP:实战搭建一个小型WPA2-Enterprise测试环境(FreeRADIUS + 家用路由器)

本文详细介绍了如何从零搭建WPA2-Enterprise测试环境,使用FreeRADIUS服务器和家用路由器实现企业级WiFi认证。通过实战指南,包括证书生成、EAP-PEAP配置、OpenWrt路由器设置及故障排查,帮助网络工程师和爱好者掌握802.1X协议栈的实际应用。

weixin_28715953的博客 325

深度学习(五)迁移学习(实战:新数据预测+vgg16和聚类预测)

6、成功引入PCA数据降维技术,剔除了数据中的噪音信息、降低了模型复杂度、减少了模型训练时间,并最终提高了模型表现;gen=datagen.flow_from_directory(path,target_size=(224,224),batch_size=2,save_to_dir=dst_path,save_prefix='gen',save_format='jpg') # 生成图片大小224*224,bs产生多少组图像,存储路径和前缀。1、通过使用新数据,实现了模型的2次训练,达到了较好的预测效果;

weixin_37699342的博客 775

游戏设计模式学习笔记(1)设计原则、看懂类图

游戏设计模式学习笔记(1)设计原则、看懂类图 参考: 《设计模式与游戏完美开发》 《游戏编程模式》(https://github.com/tkchu/Game-Programming-Patterns-CN) 《图说设计模式( Graphic Design Patterns)》(https://github.com/me115/design_patterns) 【游戏设计模式】浅墨_毛星云: h...

l773575310的博客 1447

【雷达通信】雷达信号处理仿真【含Matlab源码 2509期】

雷达信号处理仿真 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 904

设计模式初步学习结束--->尚硅谷Java设计模式总结MarkDown笔记分享;(包括UML类图)

设计模式初步学习结束 笔记来自此处专栏处导入==>https://blog.youkuaiyun.com/mrtumnus/category_11371608.html?spm=1001.2014.3001.5482 = = =>设计模式学习专栏 做的笔记(MarkDown版本) 画过的UML类图(iodraw) 打包存储了==> 可下载 链接:https://pan.baidu.com/s/1iRdS_xckGiz5CnCmqd-sOg 提取码:lzq0 或点击链接==>小智RE0.

从零开始的异世界JAVA学习 432

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

设计模式学习笔记一:UML类图 (转载)

设计模式学习笔记一:UML类图 学习设计模式,UML类图是基础,通过UML类图,能更好地和大家交流,也能很容易就表达出自己的设计想法,它就好比普通话,是一种标准语言。 现在流行的主要工具有两种:Rational Rose 和Microsoft Visio,这两种工具都比较易用,选择哪种工具就看个人的喜好了。本人对Microsoft的软件比较有好感,所以自然Microsoft V...

weixin_30535043的博客 75

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

设计模式学习笔记(类图+代码实现)

但是对每个不同的实现都需要定义一个子类,这会导致类的个数增加,系统更加庞大,设计也更加抽象,且父类中的抽象方法由子类实现,子类执行的结果会影响父类的结果,这导致一种反向的控制结构,它提高了代码阅读的难度。双向关联就是双方互相依赖,可以细分为一对一、一对多、多对一和多对多,例如学生和课程,学生选课,课程被学生学习,这是一个多对多的关系,一个学生可以选取多门课程,一个课程可以被多个学生选取,例如丈夫和妻子,就是一对一关系,自关联是一种特殊的单向关联,例如链表的Node节点的指针域就是Node类型的。

69岁法外狂徒的博客 1982

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

1. 设计模式学习基础之UML类图

文章目录设计模式学习基础之`UML`--类图了解UML图UML 类图1. idea查看类图的方法2. 类图--依赖关系`(Dependence)`3. 类图—泛化关系`(generalization)`4. 类图—实现关系`(Implementation)`5. 类图—关联关系`(Association)`6. 类图—聚合关系(Aggregation)7. 类图—组合关系(Composition)小结:`☆` 设计模式学习基础之UML–类图 了解UML图 UML——Unified modeling lan

weixin_45267102的博客 530

【设计模式学习笔记】类图:类与类之间的关系

设计模式UML类图,通过类图和C++代码介绍了类与类之间的6种关系:泛化关系、依赖关系、实现关系、关联关系、聚合关系、组合关系。最后分析了6种关系的区别和联系。

仅以此博客记录日常学习工作中所思所得,水平有限,难登大雅,万望海涵。 6083

uml类图实例作业_[学习·设计模式]看懂UML类图

最近想要开始学习设计模式,因此打算做些笔记,做个心得分享。为什么我突然脑子抽风想学设计模式?为了找工作,努力补习看了《Java程序员面试笔试宝典》这本书。但是对于其中关于设计模式的,完全属于死记硬背。强行背诵下:单例模式:确保该类只有一个实例,而且自行实例化,并向整个系统提供这个实例。public class Test{ private Test(){} private static Te...

weixin_39517546的博客 441

设计模式学习笔记——类图

学习设计模式,少不了类图。要能看懂类图。类图中比较容易混淆,分辨不清的是类与类之间的关系。关系如下:1、关联1)双向关联2)单向关联3)自关联4)多重性关联5)聚合6)组合2、依赖3、泛化4、接口

左直拳的马桶_日用桶 2363

设计模式学习笔记 - UML类图

UML(Unified modeling language,统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果。UML本身是一套符号的规定,这些符号用于描述软件模型中的各个元素(类、接口)和它们之间的关系(依赖、泛化、实现、关联、组合、聚合)。使用UML来建模常用的工具有Rational Rose,也可以使用一些插件来建模,例如Eclipse插件AmaterasUML。

qq_42141141的博客 629

【设计模式——学习笔记】设计模式前置知识:UML类图入门

了解类图的作用、绘图的工具、元素之间的各种关系

我只管埋头前行,剩下的交给时间。 789

【笔记】【转载】JohnConnor设计模式笔记(一) 学习设计模式之前你必须掌握的-看懂UML类图...

-描述设计模式的时候会经常用到UML类图来描述类之间的静态结构。此篇的用意仅仅在于让各位看官能够看懂UML类图,并且弄清楚UML类图中的几种关系。 -在之后的设计模式学习过程中仅此两点足矣,更高深的不在此篇讨论范围内。   UML类图是UML(unified modeling language,标准建模语言)五种图示法中静态图的一种-用来描述系统中类的静态结构,不仅定义系统中的类,表示类之间的...

weixin_30466421的博客 104

23种设计模式学习之:UML类图

UML类图: 虚线箭头指向依赖; 实线箭头指向关联; 虚线三角指向接口; 实线三角指向父类; 空心菱形能分离而独立存在,是聚合; 实心菱形精密关联不可分,是组合。 转自作者wall-ee ...

shun12580的博客 166

设计模式学习(2) UML类图

类: Employee类,包含name,age和email 这3个属性,以及retName、getInfo方法。UML类图是UML中专注于描述系统的静态结构,展示类、接口、协作及它们之间的关系的图形语言。e.g: teacher和student是双向关联,而student和course是单向关联。使用包含类名、属性(filed)和方法(method)且带有分割线的矩形来表示。本身是一套符号的约定,描述软件模型中各个元素及它们之间的关系。e.g: university和实现类。e.g:fruit和继承类。

qq_37763312的博客 619

设计模式学习笔记一:UML类图

学习设计模式,UML类图是基础,通过UML类图,能更好地和大家交流,也能很容易就表达出自己的设计想法,它就好比普通话,是一种标准语言。 现在流行的主要工具有两种:Rational Rose 和Microsoft Visio,这两种工具都比较易用,选择哪种工具就看个人的喜好了。本人对Microsoft的软件比较有好感,所以自然Microsoft Visio 2003是我的首选。 类:

zbunix的专栏 762
上一篇: 设计模式学习——设计模式的七大原则
下一篇: 设计模式学习——单例模式
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值