UML类图和设计模式

UML类图和设计模式

UML类图

在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)
首先上图:

泛化(Generalization)

泛化关系:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。
箭头指向:带三角箭头的实线,箭头指向父类

实现(Realization)

实现关系:是一种类与接口的关系,表示类是接口所有特征和行为的实现。
箭头指向:带三角箭头的虚线,箭头指向接口

关联(Association)

关联关系:是一种拥有的关系,它使一个类知道另一个类的属性和方法;可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
代码表现:成员变量
箭头指向:带普通箭头的实心线,指向被拥有者指向接口

聚合(Aggregation)

聚合关系:是整体与部分的关系,且部分可以离开整体而单独存在。聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
代码表现:成员变量。
箭头指向:空心菱形+实线箭头,菱形指向整体

代码组合(Composition)

组合关系:是整体与部分的关系,但部分不能离开整体而单独存在。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
代码表现:成员变量。
箭头指向:实心菱形+实线箭头

依赖(Dependency)

依赖关系:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖。
代码表现:局部变量、方法的参数或者对静态方法的调用。
箭头指向:带箭头的虚线,指向被使用者

各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

设计模式

Adaptor
Adaptor
Decorator
在这里插入图片描述
Facade
在这里插入图片描述
Strategy
在这里插入图片描述
Template
在这里插入图片描述
Iterator
在这里插入图片描述
Proxy
在这里插入图片描述
Observer
在这里插入图片描述
Visitor
在这里插入图片描述

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单例模式是一种设计模式,它确保一个类只能创建一个对象。在单例模式中,类的实例被限制为一个,并且可以全局访问。这在需要共享资源或限制对象创建的情况下非常有用。 下面是一个使用单例模式的示例代码: ```python class Singleton: __instance = None @staticmethod def getInstance(): if Singleton.__instance == None: Singleton() return Singleton.__instance def __init__(self): if Singleton.__instance != None: raise Exception("This class is a singleton!") else: Singleton.__instance = self # 使用单例模式创建对象 obj1 = Singleton.getInstance() obj2 = Singleton.getInstance() print(obj1 is obj2) # 输出:True,obj1和obj2是同一个对象 ``` 上述代码中,`Singleton`类的`getInstance`方法用于获取类的唯一实例。如果实例不存在,则创建一个新实例并将其存储在`__instance`变量中。如果实例已经存在,则直接返回该实例。 UML类图是一种用于可视化类之间关系的图表。在类图中,可以明确表示类、接口、属性、方法以及类之间的关系。下面是一个使用UML类图表示单例模式的示例: ``` +--+ | Singleton | +--+ | - __instance: Singleton | +--+ | + getInstance(): Singleton | | - __init__() | +--+ ``` 在上述UML类图中,`Singleton`类具有一个私有的`__instance`变量,用于存储类的唯一实例。`getInstance`方法用于获取该实例。`__init__`方法是私有的,确保只能通过`getInstance`方法创建实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值