https://blog.csdn.net/weixin_39786706/article/details/114889384
友情链接进行补充 转载一波

一.四大关系

1.关联关系( Association)是类与类之间最常用的

1.它是一种结构化关系,用于表示一类对象与另一类对象之间有联系
2.在UML类图中,用实线连接有关联的对象所对应的类
3.使用Java、C++等OOP编程语言实现关联关系时,通常将个类的对象作为另一个类的属性
在使用类图表示关联关系时可以在关联线上标注角色名

因为到时候用户去购买产品的方法,所以当用户去调用购买票的方法的时候,正好是用户买票者个逻辑,所以将Product产品放在Customer类里面。也就是puchases这个逻辑
User user=new User();
user.purchase(product);



1.2聚合关系(属于关联关系)

1.聚合关系表示一个整体与部分的关系.通常在定义一个整体类后,再去分析这个整体类的组成结构,从而找出一些成员类,该整体类和成员类之间就形成了聚合关系
2.在聚合关系中,成员类是整体类的一部分,即成员对象是整体对象的一部分,但是成员对象可以脱离整体对象独存在。在UML中,聚合关系用带空心菱形的直线表示

1.3组合关系

1.组合关系 Composition)也表示类之间整体和部分的关系,是组合关系中部分和整体具有统一的生存期,一旦整体对象不存在,部分对象也将不存在,部分对象与整体对象之间具有同生共死的关系。
2.在组合关系中,成员类是整体类的一部分,而且整体类以控制成员类的生命周期,即成员类的存在依赖于整体类。在UML中,组合关系用带实心菱形的直线表示

2.依赖关系

1.依赖关系( Dependency是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。 还有一种情况是在当前类创建其他类的对象,该类为依赖的一方,另外一个类为被依赖方
2.在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。

3.泛化关系

1.泛化关系( Generalization)也就是继承关系,也称为"is a kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类。子类又称作派生类.在UML中,泛化关系用带空心三角形的直线来表示
2.在代码实现时使用面向对象的继承机制来实现泛化关系如在]ava语言中使用 extends关键字、在C十十/C#中使用冒":”来实现。

4.类与接口的实现关系

接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系这种关系,类实现了接口,类中的操作实现了接口中所声明的操作。在∪ML中,类与接口之间的实现关系用带空心三角形的虚线來表示

二.八大设计原则整体概述


软件设计模式与体系结构(入门基础知识)相关推荐

  1. 深入了解计算机的知识,电脑入门基础知识之深入理解计算机系统

    电脑入门基础知识之深入理解计算机系统 导语:计算机系统由计算机硬件和软件两部分组成.硬件包括中央处理机.存储器和外部设备等.下面就来看看小编为大家整理的资料,希望对您有所帮助! 简介 按人的要求接收和 ...

  2. 电脑的基础知识_电脑入门基础知识

    电脑入门基础知识 学习电脑应该先了解电脑的基本的组件,然后学习操作,包括键盘.鼠标的使用,能基本使用操作系统,再学习打字. 作为一个电脑小白,想要学习电脑,首先要知道如何操作,学习打字,接着就是熟练使 ...

  3. 嵌入式入门基础知识有哪些?

    嵌入式系统是指在特定应用领域内为满足特定要求而设计的计算机系统,通常被嵌入到设备中,具有实时性.可靠性.低功耗等特点.嵌入式系统应用广泛,例如:智能家居.智能手表.汽车控制系统.医疗设备等. 在本篇博 ...

  4. Windows通用克隆系统入门基础知识简介

    Windows通用克隆系统入门基础知识简介 这里的Windows是指微软的Windows 2000/XP/2003(后文中未经说明的,凡是Windows均指这三种系统):所谓的通用克隆,俗名万能克隆, ...

  5. 学单片机有前景吗?单片机入门基础知识

    任何一个行业,都难免会看到一群喷子,喷行业辣鸡,喷职业苦逼. 最近看到很多喷单片机这个行业的,说这个行业工资低,学的东西又多,没前途. 还不如去学习纯软件,收入上限高. 一.无际对这个行业的看法(当小 ...

  6. Sketch Mac入门基础知识——蒙版(Mask)的详细使用方法介绍

    在上一篇文章,我们认识了Sketch Mac这款软件,在本文中,我们再来看看Sketch Mac入门基础知识--蒙版(Mask)的详细使用方法介绍,让您更多更好的了解Sketch Mac,为以后使用奠 ...

  7. 炒股入门初学者基础知识讲解,如何掌握新手炒股入门基础知识

    对一些刚入股市的新手来讲,要学习的股票术语和一些图标实在是太多了,很多的新手在炒股的时候不知道炒股的技巧是什么,毕竟万事开头难,所以大家要多了解一些基础的知识.下面为大家介绍下QR技术分析社区中关于炒 ...

  8. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  9. Python培训入门基础知识学什么?

    Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...

  10. NLP汉语自然语言处理入门基础知识介绍

    NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...

最新文章

  1. Python SQLite 用法
  2. 《预训练周刊》第11期:全球最大智能模型“悟道2.0”重磅发布、谷歌KELM:将知识图与语言模型预训练语料库集成...
  3. 2019年4月最新勒索病毒样本分析及数据恢复
  4. SpringMVC深度探险(三) —— DispatcherServlet与初始化主线
  5. CQRS, Task Based UIs, Event Sourcing agh!
  6. 玩转Numpy——stack(),hstack(),vstack(),dstack()函数简单介绍
  7. php base64_decode 图片,php base64保存为图片,带格式解析
  8. C#组成考题字符串【C#】
  9. 许昌市襄县机器人_襄城县机器人自动码垛机生产工厂批发销售
  10. linux shell学习四
  11. oracle中@,深入理解Oracle中的DBCA
  12. 如何用 60 行代码爬取知乎神回复?
  13. const关键字在c语言的作用,C语言const关键字作用
  14. matlab绘制直方图的方法
  15. javaw java_java与javaw区别
  16. 重装系统之制作U盘启动盘 - 一盘通装
  17. 数组元素全排列、组合 C语言代码
  18. 【软件测试】浅谈API功能测试
  19. VMware下怎么批量创建,克隆,迁移虚拟机
  20. PDPS软件:机器人抓手工具运动机构制作与仿真运行测试

热门文章

  1. IT寡头们之间的围棋模式;最新动向:多点布局,规模经营和资本扩张
  2. (附源码)springboot 学生选课系统 毕业设计 612555
  3. [MATLAB/编程]报童的诀窍/报童问题-图解法和二分法
  4. 基于Arduino的智能环境监测与反馈系统
  5. android手机运行win10,兼容安卓 Win10手机竟然能直接运行APK
  6. 使用135编辑器HTML样式,135编辑器滑动样式全教程!
  7. 写代码不严谨,我就不配当程序员?
  8. 繁凡的对抗攻击论文精读(一)CVPR 2019 基于决策的高效人脸识别黑盒对抗攻击(清华朱军)
  9. CentOS6.5 yum源配置
  10. TeamTalk 单服务端配置