设计模式UML类图基础
1.聚合
聚合(aggregation)表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但是B对象不是A对象的一部分。如大雁是群居动物,每只大雁都属于一个雁群,一个雁群可以有多只大雁,这便是一种聚合关系。
- class WideGooseAggregate{
- private WideGoose[] arrayWideGoose;//在雁群WideGoosegrate类中,有大雁数组对象arraryWideGose
- }
2.合成
合成(Composition)是一种强拥有的关系,体现了严格的部分和整体的关系,部分和整体的生命周期是一样,如鸟和翅膀就是组合的关系,因为他们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的。
- class Bird
- {
- private Wing wing;
- public Bird()
- {
- wing = new Wing();//在鸟Bird类中,初始化时,实例化翅膀Wing,他们之间同时生成
- }
- }
3.关联
当一个类“知道”另一个类时,可以用关联(association),用实线箭头表示。如企鹅与气候关联,企鹅需要“知道”气候的变化,需要了解气候规律。
- class Penguin:Bird
- {
- private Climate climate;//在企鹅Penguin中,引用到气候Climate对象
- }
4.依赖关系
依赖关系(Dependency)用虚线箭头来表示。动物几大特征,比如有新陈代谢,能繁殖。而动物要有生命力需要氧气、水以及食物等,也就是说动物依赖于氧气和水。
- abstract class Animal
- {
- public Metabolism(Oxygen oxygen,Water water)
- {
- }
- }
5.接口
6.继承
设计模式UML类图基础的更多相关文章
- 设计模式-UML类图基础
设计模式之序-UML类图那点事儿 打14年年底就像写那么一个系列,用于讲设计模式的,代码基于JAVA语言,最早接触设计模式是大一还是大二来着,那时候网上有人给推荐书,其中就有设计模式,当时给我推荐的书 ...
- 23种经典设计模式UML类图汇总
在这里23种经典设计模式UML类图汇总 创建型模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基 ...
- 设计模式-UML类图的各符号含义(转)
UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系 ...
- php设计模式——UML类图
前言 用php开发两年多了,准备也写一下平时常用的设计模式,都是基于自己的实践经验,当然,用设计模式之前首先要看懂设计模式,因此这里首先讲解一下UML类图.通过UML类图,能更好的和大家交流,也能很容 ...
- Java 大黑话讲解设计模式 -- UML类图
目录 1.啥是UML类图? 2.UML类图有啥用? 3.正式理解UML类图 4.使用idea画第一个UML类图 5.类之间的关系图[必须牢记] 6.类之间的关系 6.1.依赖 6.2.泛化 6.3.实 ...
- UML类图基础说明
UML类图主要由类和关系组成. 类: 什么具有相同特征的对象的抽象, 具体我也记不住, 反正有官方定义 关系: 指各个类之间的关系 类图 类就使用一个方框来表示, 把方框分成几层, 来表示不同的信息, ...
- UML 类图基础知识记录
UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 依赖(Dependency): 关联(Association): 聚合(Aggregation): 合成(Composition): 泛化 ...
- UML 类图基础
先留个坑, 后续再填 UML 类图中主要包括以下几种关系: 1. 泛化: 定义:继承关系,指定子类继承父类的所有特征与行为. 图形:三角形箭头,指向父类. 2. 实现 定义:类与接口的 ...
- java设计模式--UML类图
2016-06-07 22:46:16 下面简单介绍UML类图:(图是截取的,大家可以用UML工具去画) 1.描述类的类图 类:Person 属性:name age sex 访问权限:- 表 ...
随机推荐
- 元素JS拖动的实现
涉及到了几个位置的属性 offset clientX cilentY 等 $(selector).on("mousedown",function (e){ var x = e. ...
- JS和CSS关于大小写的区分
方法: document.getElementById("xx").style.xxx中的所有属性是什么 盒子标签和属性对照 CSS语法(不区分大小写) JavaScript语法( ...
- 解决Mac下GDB提示签名错误
http://blog.csdn.net/powerlly/article/details/30323015
- lua 基础库
数学库: 三角函数:math.sin, math.cos, math.tan, math.asin, math.acos 都以弧度为单位: 指数和对数函数:exp, log, log10: 取整函数: ...
- 0525 SCRUM项目7.0
主题:在下一个SPRINT中做的更好 一,实验回顾总结 当谈到在一个团队里的收获,首当其冲的便是对于团队工作流程的切身体会.亲力亲为.从申报材料.问卷设计.访谈提纲.团队建设.书签制作到实地访谈.问卷 ...
- mongodb固定集合,建立管理员安全验证
建立普通集合 db.createCollections aaa; 建立固定集合名称book capped true 固定集合 size大小 max:文档数量 db.createCollection(& ...
- 第九十七天请假 PHP TP框架 MVC模式
MVC : M->Model 模型(数据层) V->View 视图(视图层) C->Controller 控制器(逻辑层) M : 操作数据(连接数据 ...
- QtCreator动态编译jsoncpp完美支持x86和arm平台
如果是做嵌入式开发. 在Qt下支持JSon最好的办法,可能不是采用qjson这个库.QJson这个库的实例只提供了x86环境下的编译方法. Installing QJson-------------- ...
- Android菜鸟成长记6 -- 网络连接的检查
在android开发中我们要经常考虑到各种问题.在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒.一般可以通过ConnectivityManager ...
- linq 延迟执行带来的困扰
有这样一个案例: var filteredResult = from f in orgFileList select f; ; i < WorkStatusFilters.ListWorkSta ...