1.11 UML 类图(多看多用就熟悉了)(节选自:《大话设计模式》)
类:用矩形框表示(类图分三层)
第一层显示类的名称;(如果是抽象类,就用斜体显示)
第二层是类的特性,通常就是字段和属性;
第三层是类的操作,通常是方法或行为。
(注意前面的符号,“+” 表示 public,“-” 表示 private,“#” 表示 protected)
接口:(接口有两种表示方法)
方法一:矩形表示法(矩形表示法与类图的区别主要是顶端有《interface》显示)
顶端有《interface》
第一行:接口名称
第二行:接口方法
方法二:棒棒糖表示法(小圆圈加一竖线)
圆圈旁为接口名称
接口方法在实现类中出现(这样好像看不出来类里面的哪些方法是继承自接口的)
接下来就可以讲类与类,类与接口之间的关系了:
继承关系:
继承关系用空心三角形 + 实线来表示;(从子类指向父类)
class Bird : Animal
{ }
类实现接口:
空心三角形 + 虚线(从类指向接口)
class WideGoose : IFly
{ }
关联关系:(在一个类中引用到了另一个类的对象,换句话说就是,以被引用类的对象作为一个字段或属性 -- 这里是一种“需要知道”的关系,而不像合成关系中有初始化与实例化的限制)
关联关系用实线箭头来表示; (指向字段或属性类)
class Penguin : Bird
{
private Climate climate; //关联关系体现在:在企鹅 Penguin类中,引用到气候 Climate对象
}
聚合关系:一种弱的“拥有”关系,体现的是 A 对象可以包含 B 对象,但 B 对象不是 A 对象的一部分(如:在“雁群”类中有“大雁”数组对象)
聚合关系用空心的菱形 + 实线箭头来表示;
class WideGooseAggregate
{
private WideGoose[] arrayWideGoose; //聚合关系体现在:在雁群类中,有大雁“数组对象”
}
合成关系:一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。(鸟和其翅膀就是合成关系,因为它们是部分和整体的关系,并且翅膀和鸟的生命周期是相同的 —— 在“鸟”类中,初始化时需要实例化翅膀类)
合成关系用实心的菱形 + 实线箭头来表示;(另外,合成关系的连线两端还有一个数字 “1” 和另外一个数字,这被称为基数,表明这一端的类可以有几个实例。如果一个类可能有无数个实例,就用“n”来表示)(聚合关系也可以有基数)
class Bird
{
private Wing wing;
public Bird()
{
wing = new Wing(); //除了说字段中包含Wing类对象,初始化时还需要实例化翅膀Wing
}
}
依赖关系:类的方法中需要以别的类的对象作为参数
依赖关系用虚线箭头来表示。
class Animal
{
public void MetaBolism(Oxygen yangqi,Water shui)
{ }
}
编程是一门技术,更加是一门艺术,不能只满足于写完代码运行结果正确就完事,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,只有这样才可以真正得到提高。
1.11 UML 类图(多看多用就熟悉了)(节选自:《大话设计模式》)的更多相关文章
- 设计模式学习笔记(详细) - 七大原则、UML类图、23种设计模式
目录 设计模式七大原则 UML类图 设计模式分类 单例模式 工厂设计模式 简单工厂模式 工厂方法模式(使用抽象类,多个is-a) 抽象工厂模式(使用接口,多个like-a) 原型模式 建造者模式 适配 ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
- UML——在Visual Studio 2013/2015中设计UML类图
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...
- UML类图五种关系与代码的对应关系
转: UML类图中的五种关系的耦合强弱比较:依赖<关联<聚合<组合<继承 一.依赖关系: (一)说明 虚线+箭头 可描述为:Uses a 依赖是类的五种关系中耦合最小的一种关系 ...
- 设计模式——1.概述&UML类图和时序图
声明:本博客设计模式相关文章均整理和修改自网络,原文地址:图说设计模式 学习设计模式的3个层次—— 1.熟悉所有设计模式: 2.能够用代码实现: 3.运用到工作的项目中. 设计模式指导软件开发,学习设 ...
- 从 Java 代码逆向工程生成 UML 类图和序列图
from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...
- 18、面向对象基本原则及UML类图简介
18.1.面向对象基本原则 18.1.1.面向抽象原则 抽象类特点: a.抽象类中可以有abstract方法,也可以有非abstract方法. b.抽象类不能用new运算符创建对象. c.如果一个非抽 ...
- Visual Studio 2015中设计UML类图
1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...
- 23种经典设计模式UML类图汇总
在这里23种经典设计模式UML类图汇总 创建型模式 1.FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基 ...
随机推荐
- _faction
一.自定义阵营独立于联盟,部落,联盟和部落玩家可以加入同一阵营 二._function_menu表可以配置自定义阵营开启 二.配合_pvp表,可以实现区域的自定义阵营PVP 三.配合_req表fact ...
- 详细解说Tomcat 设置虚拟路径的几种方法及为什么设置虚拟路径
说明:此次使用的是Tomcat 7.0 很多朋友都会很疑惑,既然我们都知道在Tomcat服务器上部署项目只要将项目打包,然后放到webapps目录下就可以了,为什么还需要配置虚拟路径?的确,把项目放到 ...
- Windows操作系统电脑的运行代码大全
CMD命令使用方法:开始->运行->键入cmd.或者win键+R->键入cmd gpedit.msc—–组策略 sndrec32——-录音机 Nslookup——-IP地址侦测器 e ...
- python模块(2)
1.OS模块 print(os.getcwd()) #获取当前工作目录 os.chdir('E:\python练习\python35学习') #更改目录 print(os.getcwd()) E:\p ...
- x1c 2017 安装mint18的坑——grub2
折腾一天,死活安装不上.用U盘安装,能进入pe,但是安装时提示无法将grub2安装到/target/ 不论如何分区.如何修改BIOS 安全启动和 启动模式.都是这个问题. ubuntu16.04.3 ...
- linux网络常用命令
1,显示网桥 brctl show2,显示ip ip a3,查看openvswitch的配置信息 ovs-vsctl show4,显示网络命名空间 ip netns5,显示DHCP信息 ps -ef ...
- 大数据新手之路三:安装Kafka
Ubuntu16.04+Kafka1.0.0 1.下载kafka_2.11-1.0.0.tgz http://kafka.apache.org/downloads 2.解压到/usr/local/ka ...
- idataway_前端
一半架构,一半标准.---纯属个人意见 ----------------------------------------- 基本的插件:(尽量使用iviews) 1.传输图片. 2.下拉框.日期控件. ...
- QQ Protect 的删除
删的好费劲,驱动程序,服务,各个东西都在相互保护. 最后总结: 1)进安全模式 2)删除 下面的文件 c:\program files\tencent\qqlite\shellext\qqshelle ...
- 2017-2018-2 20165303 实验三《Java面向对象程序设计》实验报告
实验三 敏捷开发与XP实践-1 实验要求 实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 参 ...