设计模式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 访问权限:- 表 ...
随机推荐
- 树莓派make 360wifi2报错
输入make命令后报错 make: *** /lib/modules/3.10.25+/build: No such file or directory. Stop. 系统缺少编译模块所需要的内核头文 ...
- 调用jar程序,读取与jar同级的配置文件。
System.getProperty("user.dir") + "\\Mysettings.properties";//该方法在Alimonitor里取不到绝 ...
- C++学习基础五之函数参数——形参
一.理论部分 C++中函数形参主要分为两类,如图1所示, 图1 总结: 一.当函数参数为非引用形参时,传进函数体内的是实参的拷贝,(注意,对于基本类型而言,拷贝的是实参的值,对于指针而言拷贝的是实参的 ...
- js动态改变时间
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- 解决Django和EasyUI搭配使用时出现的CSRF问题
在<head></head>中添加以下代码即可: <script type="text/javascript"> $.ajaxSetup({ d ...
- Java串口通信详解
http://blog.csdn.net/kabini/article/details/1601324 ———————————————————————————————————————————————— ...
- archlinux pacman 常用选项
pacman -S package_name #安装软件包pacman -R package_name #删除软件包 pacman -Rs package_name #顺便删除软件包相关依赖pacma ...
- NGUI ScrollView总结
1顶级父类加boxCollider和UIDragScrollView脚本保证在item拖走后也能通过拖拽剩余区域的方式操作. 2下一级添加UIPanel在Clipping设定区域,注意如果设定soft ...
- Select查询语句2
一.模糊查询 1.语法结构 select*from table_name where column like '%context%' 在使用like运算符时如果不使用通配符“%”,则like的作用与= ...
- spilt()的用法
split() 方法用于把一个字符串分割成字符串数组.<script type="text/javascript"> var str="How are you ...


