设计模式------------UML关系
2014-03-24 14:51
435 查看
设计模式总览
依赖关系,关联关系,继承关系,接口实现,组合关系,聚合关系,
这里说几种常用的关系表示方法:
1、依赖关系:
用虚线+箭头表示。
依赖关系体现为下列几种情况:
①成员函数参数
②局部变量
③调用静态方法
2、关联关系
实线+箭头
表现形势:指针成员
3、组合关系
实心菱形+实线
表现形势:数据成员
4、聚合关系
空心菱形+实线
代码与关联关系一致,要从具体实现来区分到底是那种关系。(关联,聚合,组合三种关系的表现形势非常相似,要从具体的逻辑来区分到底是什么关系)。
关联关系是同层之间的关系,切彼此生命周期互不干涉。如 我 和 我的朋友
聚合关系是处于不同层次之间的关系,切彼此生命周期互不干涉。 如 公司 和 员工
组合关系是处于不同层次之间的关系,切整体与部分之间不可分离,即整体不存在了,那部分也就不存在了。 如 你 和 你的大脑。
5、继承关系
用三角形+实线
6、接口实现
用三角形+虚线
c++中并没有接口这个概率,但可以用抽象类来模拟。
依赖关系,关联关系,继承关系,接口实现,组合关系,聚合关系,
这里说几种常用的关系表示方法:
1、依赖关系:
用虚线+箭头表示。
依赖关系体现为下列几种情况:
①成员函数参数
②局部变量
③调用静态方法
class A { public: int a; static void funcA(); }; class B { public: void funcB(A arg) // ① { A temp; // ② A.funcA(); // ③ } };上例代码中的三种情况,均为B依赖于A。
2、关联关系
实线+箭头
表现形势:指针成员
class A { public: }; class B { public: A* p; };B持有一个A的对象的引用,但不控制该对象的生命周期。
3、组合关系
实心菱形+实线
表现形势:数据成员
class A { public: }; class B { public: A a; };B控制A的整个生命周期。(也可以以指针形势实现,但要手动控制a的生命周期)
4、聚合关系
空心菱形+实线
代码与关联关系一致,要从具体实现来区分到底是那种关系。(关联,聚合,组合三种关系的表现形势非常相似,要从具体的逻辑来区分到底是什么关系)。
关联关系是同层之间的关系,切彼此生命周期互不干涉。如 我 和 我的朋友
聚合关系是处于不同层次之间的关系,切彼此生命周期互不干涉。 如 公司 和 员工
组合关系是处于不同层次之间的关系,切整体与部分之间不可分离,即整体不存在了,那部分也就不存在了。 如 你 和 你的大脑。
5、继承关系
用三角形+实线
class A { public: }; class B : public A { public: };
6、接口实现
用三角形+虚线
c++中并没有接口这个概率,但可以用抽象类来模拟。
相关文章推荐
- 【设计模式系列】之《UML五种关系与代码的对应关系》
- 设计模式基础:类及类关系的UML表示
- 设计模式中类的关系UML
- 【设计模式】UML关系图示例
- 设计模式基础---UML关系的代码实现
- 设计模式——UML建模的重要知识类图关系和基本的设计原则小结
- 设计模式——UML建模的重要知识类图关系和基本的设计原则小结
- 设计模式奠基石——UML关系转化为代码
- (二)设计模式之UML六大关系
- 设计模式基础:类及类关系的UML表示
- 设计模式学习---UML常见关系的实现
- 设计模式之UML(一)类图以及类间关系(泛化 、实现、依赖、关联、聚合、组合)
- 软件工程 ,UML ,设计模式 简单关系
- 类关系(UML&设计模式)
- 设计模式基础:类及类关系的UML表示
- 设计模式奠基石——UML关系转化为代码
- 设计模式中类的关系 UML
- 类关系(UML&设计模式)
- 设计模式基础(一):UML中关系图解
- 学习设计模式第三 - 基础使用UML表示关系