设计模式之UML类图

设计模式之UML类图

UML类图能够很清晰的表达程序的设计,在程序开发中各类类存在不一样的依赖关系,在UML中使用不一样的箭头来表达类之间的关系,例如依赖关系关联关系泛化关系实现关系组合关系聚合关系*。设计模式

能够使用StartUML工具或者Rose工具来画类图,可是已经2019年啦。咱们有强大的IDEA开发工具,咱们能够安装插件来画类图,下面就是一个类图。app

image-20190712233955913

1.1.依赖关系

依赖关系dependency),在UML类图中使用带普通箭头的虚线表示,以下所示:工具

image-20190713001756745

  • UserService类中使用啦成员变量UserMapper,故能够描述为UserService依赖UserMapper
  • UserService类中的saveUser(User user)方法参数使用啦User,故能够描述为UserService依赖User
  • UserService类中的getCorp()方法的返回类型是Corp类型,故能够描述为UserService依赖Corp

依赖关系就是一个类A中使用到对方类B,例如私有变量使用B类,方法参数使用B类,构造方法等,那么就能够说是A类依赖B类。在UML类图中就能够使用依赖关系表示。学习

1.2.泛化关系

泛化关系generalization)也称之为继承关系,是依赖关系的一种特例。在UML类图中使用带实心三角箭头的实线表示,以下所示:开发工具

image-20190713002745702

若是A类和B类存在类继承关系,那么在UML类图中就能够使用泛化关系来描述。插件

1.3.实现关系

实现关系Implementation),是依赖关系的一种特例,在UML类图中使用带实心三角箭头的虚线表示,以下所示:设计

image-20190713003929571

若是A类实现了B接口,就能够使用实现关系描述。代理

1.4.关联关系

关联关系association),表示的是类与类之间的联系,是依赖关系的一种特例,在UML类图中使用带普通箭头的实线表示,关联关系中有分为单向关联关系和双向关联关系。以下所示的单向一对一关联关系:code

image-20190713143138513

1.5.聚合关系

聚合关系aggregation),表示的是总体与部分之间的关系,属于关联关系的一种特例,因此也具备导航性和多重性,表示的是总体和部分能够分开,例如笔记本和鼠标,笔记本能够离开鼠标,因此他们之间的关系就能够使用聚合关系来描述,在UML类图中使用空心的菱形箭头实线表示的,cdn

1.6.组合关系

组合关系composition),表示的是总体与部分不可分开,例如,人与身份证,合法公民都应该有本身的一个身份证,且不可缺乏,因此,他们之间就能够称之为组合关系,在UML类图中使用带实心的菱形箭头的实线表示,以下所示:

image-20190713145211242

1.7.设计模式简介

UML类图是学习和使用设计模式的前提,在设计模式中基本能够归纳为23种设计模式

建立型模式,多用于说明如何建立对象:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式,其中单例模式是为了解决如何保证系统中某一个类只有一个实例,原型模式是为类解决对象的拷贝问题。

结构性模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、代理模式等,结构型模式更多的是站在系统设计的角度去考虑问题,例如装饰者模式能够解决类爆炸的问题,在《图解设计模式》有说明。

行为型模式:主要是站在方法的角度上作设计:观察者模式责任链模式、策略模式、解释器模式、命令模式、中介者模式、迭代器模式、状态模式、模版方法模式等等。

相关文章
相关标签/搜索