设计模式 (4)类图一

  • 导言
    • 类的定义
    • 类的介绍
  • 类图
    • 类图的定义
    • 类图的表示
      • 类和对象表示示例图
      • 类图示例
        • 类对应的Java代码
      • 类名
        • 类名示例
      • 属性Atttributes
        • 示例
      • 类的操作
        • 示例
      • 类之内部类表示
        • 示例
  • 结语

导言

学习类图,无一例外得学习类,以及类之间的关系和类图的绘制。

一般是采用UML类图表示法描绘静态模型。

类的定义

类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称

在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。

一个类可以有多种职责,设计得好的类一般只有一种职责(单一职责原则),在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。

类的属性即类的数据职责,类的操作即类的行为职责

在软件系统运行时,类被实例化成对象(Object),对象对应于某个具体的事物。类是一组具有相同属性、表现相同行为的对象的抽象,对象是类的实例(Instance)。

类的介绍

类是面向对象程序设计中的概念,是面向对象编程的基础。

类的实质是一种数据类型,类似于int、char等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。

类是对现实生活中一类具有共同特征的事物的抽象。如果一个程序里提供的类型与应用中的概念有直接的对应,这个程序就会更容易理解,也更容易修改。一组经过很好选择的用户定义的类会使程序更简洁。此外,它还能使各种形式的代码分析更容易进行。特别地,它还会使编译器有可能检查对象的非法使用。

类的内部封装了方法,用于操作自身的成员。类是对某种对象的定义,具有行为(be-havior),它描述一个对象能够做什么以及做的方法(method),它们是可以对这个对象进行操作的程序和过程。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。

类的构成包括数据成员和成员函数。数据成员对应类的属性,类的数据成员也是一种数据类型,并不需要分配内存。成员函数则用于操作类的各项属性,是一个类具有的特有的操作,比如“学生”可以“上课”,而“水果”则不能。类和外界发生交互的操作称为接口。

类图

类图的定义

类图使用需要出现在系统内的不同的类来描述系统的静态结构,类图包含类和它们之间的关系,它描述系统内所声明的类,但它没有描述系统运行时类的行为。

类图显示了一组类、接口、协作以及他们之间的关系。

类图的表示

在UML中,类使用具有类名称、属性、操作分割的长方形来表示。

类和对象表示示例图

类图示例

类对应的Java代码

该类对应的java代码

/***********************************************************************
 * Module:  Employee.java
 * Author:  tqw
 * Purpose: Defines the Class Employee
 ***********************************************************************/

import java.util.*;

public class Employee {

   private String name;
   private int age;
   private String email;

   public Employee() {
      // TODO: implement
   }

   public String getemail() {
      return email;
   }

   public void setemail(String newEmail) {
      email = newEmail;
   }

   public int getage() {
      return age;
   }

   public void setage(int newAge) {
      age = newAge;
   }

   public String getname() {
      return name;
   }

   public void setname(String newName) {
      name = newName;
   }

}

类名

每个类都必须有一个名字,类名是一个字符串。例如Order、Customer都是合法的类名,按照Java语言的命名规范,类名中每一个单词的首字母都需要大写。

在UML类图中,表示类的方框的顶部区域放置类名。

{abstract}表示类是抽象类

用《…》表示类的属性表示类型

用一个类指向另一个类,指定《bind》表明是边界类

类名示例

本图显示了7种不同类型的类

类名为Class的类为抽象类

类名为Class2的类为泛型类

类名为Class3的泛型类Class的边界类

类名为Class4的类为JavaBean类型的类

类名为Class5的类是AnnotationType(注释)类型的类

类名为Class6的类是Enum(枚举)类型的类

类名为Class7是一个普通类。可以是公有,私有,或者保护类型。

属性(Atttributes)

属性是指类的性质,即类的成员变量。类可以有任意多个属性,也可以没有属性。

UML中规定属性的表示方法

可见性 名称:类型[= 默认值]

其中

(1)可见性表示该属性对类外元素是否可见,包括了公有(public)、私有(private)和受保护(protected)三种,在类图中分别用符号”+”、”-“、”#”表示。Java语言增加一种包内可见性(package)。在UML中用符号“*”表示。为了保证数据的封装性,属性的可见性一般为private,通过公有的Getter方法和Setter方法供外界使用。

(2)名称表示属性名,用一个字符串表示,按照Java语言的命名规范,属性名第一个单词首字母一般小写,之后每个单词首字母大写。

(3)类型表示定义属性的数据类型,可以是基本数据类型,也可以是用户自定义类型。

(4)默认值是一个可选项,即属性的初始值。

示例

本图的例子,类名为Student,有四个属性;

name属性可见性为private(-),类型为字符串型(String),没有默认值;

age属性可见性为public(+),类型为整型(int),默认值为18;

address属性可见性为protected(#),类型为字符串型(String),没有默认值;

email属性可见性为package(*),类型为字符串型(String),没有默认值;

类的操作

操作是类的任意一个实例对象都可以使用的行为,操作是类的成员方法。

UML规定操作的表示方式

可见性 名称(参数列表):返回类型

其中:

(1)可见性的定义与属性定义相同。

(2)名称即操作名或方法名,用一个字符串表示,按照Java语言的命名规范,方法名第一个单词首字母一般小写,之后每个单词首字母大写。

(3)参数列表表示操作的参数,其语法与属性的表示相同,参数个数是任意的,多个参数之间用逗号“,”隔开。

(4)返回类型表示操作的返回值类型,依赖于具体的编程语言,可以是基本数据类型,也可以是用户自定义类型,还可以是空类型(void),如果是构造方法,则无返回值类型。

示例

本图类名为Demo,其有四个操作方法:

操作method的可见性为private(-),带入了一个Object类型的参数par,返回值为int型;

操作method1可见性为public(+),无参数,返回值为String类型;

操作method2可见性为package(*),包含两个参数,一个参数为int类型,另一个为int[]型,返回值为boolean类型;

操作method3可见性为protect(#),无参数,返回值为float型;

类之内部类表示

Java语言允许出现内部类,因此可能会出现包含四个部分的类图。一个Java可以有多个内部类。

示例

这是一个类名为Container的类:

有属性data,可见性为private(-),数据类型为int;

有操作方法method,无参,可见性为public(+),返回值类型为int;

有两个内部类,Member和Member2;

结语

本节是介绍类图的绘制,下一节介绍类的类型以及类之间的关系~~

时间: 2024-11-04 04:51:19

设计模式 (4)类图一的相关文章

设计模式-UML类图的各符号含义(转)

UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程 度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也

[设计模式]-UML类图的各符号含义

UML类图的各符号含义 类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形.由这些基本的图形进行组合构成了类图的基本符号.这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程 度.越向右耦合度越高. 其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系.实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系. 另外一点是在看类图的时候要注意.类图的思想其实也

Python设计模式 - UML - 类图(Class Diagram)

简介 类图是面向对象分析和设计的核心,用来描述系统各个模块中类与类之间.接口与接口之间.类与接口之间的关系,以及每个类的属性.操作等特性,一般在详细设计过程中实施. 类图本身就是现实世界的抽象,是对系统中各种概念进行建模,并描绘出它们之间的关系,所以类图关注的对象就是元素及元素之间的关系. 类图建模步骤 - 抽象出类实体 - 识别出类的主要属性 - 画出类之间的关系 - 对各个类进行分析.梳理.设计 类图的元素 类图中包含以下几种模型元素:类.接口.关系.协作.注释.约束.包. 类 在UML的图

java设计模式--UML类图

2016-06-07 22:46:16 下面简单介绍UML类图:(图是截取的,大家可以用UML工具去画) 1.描述类的类图 类:Person 属性:name   age   sex 访问权限:-  表示私有的private   +:表示公共的public  #:表示protected 方法: getName():String   setName(name:String)   getAge():int   setAge(age:int)   getSex():String   setSex(sex

大话设计模式---UML类图

 类图 两种接口图 继承类与实现接口 关联引用 聚合 组合 依赖

设计模式常用类图及类间的关系

一.统一建模语言 UML,用来设计软件设计蓝图的建模语言,简单.统一.图形化.能表达软件设计中的动态和静态信息. 包括用例图.类图.对象图.状态图.活动图.时序图.协作图.构件图.部署图. 二.类.接口.类图 1.类 具有相同属性.方法和关系的对象的抽象,封装了数据和行为,具有封装.继承.多态三大特性.在UML中,类包含类名.属性.和操作且使用分隔线矩形表示. 2.接口 接口是一种特殊的类,具有类的结构但是不能实例化,只可以被子类实现.包含抽象操作,但没有属性,描述了类或者组件对外可见的动作.U

设计模式以及类图的实现

  设计模式的大概组成              程序逻辑时序图                      程序实现的原理框架 原文地址:https://www.cnblogs.com/liunx1109/p/9330867.html

常用设计模式的类图

23种设计模式类图总结

下边是23种设计模式的类图大汇总,23种设计模式解析请移步 http://blog.csdn.net/qq_25827845/article/details/52932234 1.创建类模式 2.行为类模式 3.结构类模式

23种常用设计模式的UML类图

本文UML类图参考<Head First 设计模式>(源码)与<设计模式:可复用面向对象软件的基础>(源码)两书中介绍的设计模式与UML图. 整理常用设计模式的类图,一方面是为了练习UML,另一方面可以重新思考设计模式.当然,整理完成后可以作为一份手册供今后翻阅. 绘图工具:Visual Studio 2015 一.创建型 Factory Method(工厂方法) 定义:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个.工厂方法让类把实例化推迟到子类. 类图: Abstr