软件设计师【UML】
一.概述
二.核心概念
1.用例图
1.包含关系
当可以从两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示他们。其中这个提取出来的公共用例称为抽象用例,而把原始用例称为基本用例或基础用例。
使用include表示,箭头指向抽象用例!
2.扩展关系
如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。
使用extend表示,箭头指向基本用例!
3.泛化关系
当多个用例共同拥有一个类似的结构和行为时,可以将它们的共性抽象成为父用例,其它的用例作为泛化关系的子用例。
三角箭头指向父用例!
2.类图与对象图
1.依赖关系
有两个元素X,Y,如果修改元素X的定义可能会引起另一个元素Y定义的修改,则称元素Y依赖元素X。
使用带实心箭头的虚线表示。
2.泛化关系
泛化关系是继承关系的反关系。
使用带空心箭头的实线表示泛化,箭头指向父类。
3.关联关系(包括聚合和组合)
使用一条实线表示关联关系。
4.聚合关系
聚合表示类之间是整体和部分的关系。部分可以独立于整体。
使用带空心菱形的实线表示。
5.组合关系
组合表示类之间是整体和部分的关系,部分完全依赖整体,不能单独存在。
使用带实心菱形的实线表示。
6.实现关系
实现关系是用来规定接口和实现接口的类或组件之间的关系。
使用带空心箭头的虚线表示。
三.设计模式
创建型模式:工厂方法,抽象工厂,单例模式,构建模式,原型模式。
结构型模式:适配器模式,合成模式,装饰者模式,代理模式,享元模式,门面模式,桥接模式。
行为型模式:
策略模式,模板方法,迭代器,责任链模式,命令模式,备忘录模式,状态模式,访问者模式,解释器模式,调停者模式,观察者模式。
1.简单工厂
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建出哪个产品类的实例。
优点:能够使客户端独立于产品的创建过程,并且在系统中引入新产品时无需对客户端进行修改。
缺点:当有新产品加入到系统中时,必须修改工厂类,以加入必要的处理逻辑。
2.工厂模式
工厂模式可以很好地解决简单工厂模式的缺点。
3.抽象工厂模式
工厂模式针对的是一个产品的等级结构,而抽象工厂模式则针对的是多个产品等级结构。
4.单例模式
某个类只能有一个实例,必须自己创建这个实例,且必须自行向整个系统提供这个实例。
5.构建模式
构建模式把一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。构建模式是一步步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节。
6.原型模式
原型模式指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模式允许一个对象再创建可定制的对象,根本无需指定任何创建的细节。
7.适配器模式
适配器模式将一个接口转换成为客户想要的另一个接口,适配器模式使接口不兼容的那些类可以一起正常工作。
8.合成模式
合成模式组合多个对象形成树型结构以表示整体-部分的结构关系。合成模式对单个对象和合成对象的使用具有一致性。
9.装饰者模式
装饰者模式动态地给一个对象增加其它职责,就增加对象来说,装饰者模式比生成子类更为灵活。
10.代理模式
代理模式为其他对象提供一个代理或地方以控制对这个对象的访问。当客户向代理对象第一次提出请求时,将实例化为真实的对象,并将请求传给它,以后所有的客户请求都经过proxy传给封装了的真实对象。
11.享元模式
享元模式运用共享技术有效地支持大量细粒度的对象。系统只使用少量的对象,而这些对象都相近,状态变化很小,对象使用的次数较多。
12.门面模式
门面模式也称为外观模式,提供一个统一的接口去访问多个子系统的多个不同的接口。门面模式定义了一个高层次的接口,使得子系统更容易被使用。
13.桥接模式
桥接模式将抽象部分与实现部分分离,使得它们两部分可以独立变化。
14.策略模式
策略模式定义一系列的算法,将每一个算法封装起来,并让它们可以相互替换。策略模式让算法独立于使用它的客户而变化。
15.模板方法模式
模板方法模式定义一个操作中算法的骨架,已将一些步骤延缓到子类中实现。模板方法让子类重新定义一个算法的某些步骤而无需改变算法的结构。
16.迭代器模式
迭代器模式提供一种方法可以访问聚合对象,而不用暴露这个对象的内部表示。
17.责任链模式
责任链模式能避免请求发送者和接受者耦合在一起,让多个对象都有可能接受请求,将这些对象连接在一起形成一条链,并且沿着这条链传递请求,直到有对象处理为止。
18.命令模式
命令模式将一个请求封装成一个对象,因此可以参数化多个客户的不同请求,将请求排队,记录请求日志,并且支持撤销操作。
19.备忘录模式
备忘录模式在不破坏封装的前提下,捕获并且保存一个对象的内部状态,这样可以将对象恢复到原先保存的状态。
20.状态模式
状态模式能够使一个对象的内在状态改变时允许改变其行为,使这个对象看起来像是改变了类。
21.访问者模式
访问者模式说明一个操作执行于一个对象结构的成员中。访问者模式让你定义一个类的新操作而无需改变它操作的这些成员类。
22.解释器模式
给出一种语言,定义这种语言的文法的一种表示,定义一个解释器,用来解释使用这种语言的句子,这就是解释器模式。
23.调停者模式
调停者模式定义一个对象封装一系列多个对象如何相互作用。使得对象之间不需要显式地相互引用,从而使其耦合更加松散。
24.观察者模式
观察者模式定义对象间的一种一对多依赖关系,使得每当一个对象改变状态,则其相关依赖对象皆得到通知并被自动更新。
四.类图
1.依赖
2.关联
3.聚合、组合
4.泛化
5.实现
最新文章
- vs2015密钥 企业版 专业版 (vs.net)
- Android RecyclerView 动画展开item显示详情
- Deep Learning 11_深度学习UFLDL教程:数据预处理(斯坦福大学深度学习教程)
- HDU 4406 最大费用最大流
- 进制格式转换 c#
- 电子图书的编目和OPAC揭示
- android的Log日志打印管理工具类(一)
- idea Library XXXXXXXX has broken classes paths
- how tomcat works 总结
- 进程,线程,协程,异步IO知识点
- Emmet 记录
- 【R作图】lattice包,画多个分布柱形图,hist图纵轴转换为百分比
- bash常识
- SQLServer: 解决“错误15023:当前数据库中已存在用户或角色”
- PAT A1004 Counting Leaves (30 分)——树,DFS,BFS
- 【Centos】centos查看磁盘使用情况
- NSLog格式化输出
- write something
- C#重启IIS
- strptime和strptime函数理解
热门文章
- 子页面赋值给父页面:window.opener.document.getElementById
- sqlite3 线程模型
- pycharm设置代码行的长度为79字符(PEP8)
- Mqtt paho 回调函数触发机制跟踪
- python web开发——django学习(二)orm介绍与model检查
- 基于Wiremock创建Mock Service平台(转)
- LeetCode_443. String Compression
- [LeetCode] 188. Best Time to Buy and Sell Stock IV 买卖股票的最佳时间 IV
- [LeetCode] 245. Shortest Word Distance III 最短单词距离 III
- PCL读取PCD文件的数据