初识设计模式——UML类图

序言

【初识设计模式】系列主要作为本人的设计模式的学习记录(学习来源主要来自《大话设计模式》这本书,后面会将PDF格式的文件放在博客中,有需要的朋友可以下载),有需要的朋友也可以作为参考。由于在设计模式中本人也是新手,所以可能存在理解偏差的地方。

UML类图

先说一下为什么要学习UML图,个人感觉UML图就类似于工程中的CAD图纸,没有图纸的建筑也是存在的,要么这个建筑非常小(比如我们家的农村的小房子)、要么就是不合规,然后一直改。详细的UML作用的介绍https://blog.csdn.net/deepenxu/article/details/6121531,个人感觉说的不错,挺合理的。

                         

通过对上图的分析学习UML图的各种符号表示的关系:

  • 类(Class)

分为三层结构。第一层:显示的类名称,如果是抽象类则用斜体字表示。第二层:类的特性,通常为字段和属性,其中“+”号代表public,“-”号代表private,“#”号代表protected。第三层代表类的操作,通常是方法,符号的表示方式和特性一致。

 

  • 接口(interface)

有两种表示方法,第一种为左边的【飞翔】接口,另一种为右边的【讲人话】的接口,右侧的也称为棒棒糖表示法。棒棒糖表示的接口主要用于简单表示一个接口类,而在其他地方存在详细的表示(左侧的图)。

  • 继承(extends)

鸟类继承了动物类。

  • 实现(implements)

大雁类实现了飞翔接口。

  • 关联(association)

企鹅类关联着气候类,这个个人理解可能使用在数据表的建设中

  • 聚合(aggregation)

聚合是一种弱的“拥有”关系,以下面的例子说明:雁群类可以包含大雁类,但大雁不是雁群的一部分。主要在数据库的分布式中应用。

  • 合成(composition)

合成是一种强的“拥有”关系,体现的是严格的部分与整体关系,并且生命周期相同,以下面的例子说明:鸟类中不存在翅膀是存在缺陷的鸟,只有合成了翅膀之后才是完整的。

#import "People.h"

@implementation People
@synthesize eye = _eye;

- (id)init
{
    self = [super init];
    if (self != nil)
    {
        _eye = [[Eye alloc] init];
    }
    return self;
}

- (void)dealloc
{
    [_eye release];
    
    NSLog(@"People dealloc");
    
    [super dealloc];
}

@end

这是从网上找到的一段代码,可以简单了解它的构造:Eye对象是在People对象里面创建的,所以在People对象生命周期结束的时候,Eye对象的生命周期也同样结束了。

  • 依赖(Dependency)

下面的例子说明动物接口必须依赖于氧气类与水类才可使用。

下一篇

初识设计模式——设计模式的六大原则

猜你喜欢

转载自blog.csdn.net/cuixiaogang110/article/details/82353808